Редактировать: я решил свою проблему.
Кажется, у меня та же проблема, что и у этого и этот. За исключением того, что я могу использовать XNA3.0 или 3.1, но ни в одном из них нет Microsoft.Xna.Framework.Xact.dll Вместо них есть Microsoft.Xna.Framework и Microsoft.Xna.Framework.Game .
Я программирую на поверхностной таблице Microsoft и скопировал код из примера, в котором используется XNA 2.0. Я могу нормально запустить код примера, но не могу найти ссылку, которую он использует.
У меня есть ссылка как на Microsoft.Xna.Framework, так и на Microsoft.Xna.Framework.Game, и в коде у меня есть
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework;
Мой код ломается, когда он пытается создать новый AudioEngine: (потому что, если я его закомментирую, программа запустится)
string filename = System.Windows.Forms.Application.ExecutablePath;
string path = System.IO.Path.GetDirectoryName(filename) + "\\Audio\\";
try
{
audioEngine = new AudioEngine(path + "PianoSounds.xgs");
waveBank = new WaveBank(audioEngine, path + "PianoSounds.xwb");
soundBank = new SoundBank(audioEngine, path + "PianoSounds.xsb");
}
Ошибка, которую я получаю, не очень полезна:
Cannot create instance of 'SurfaceWindow1' defined in assembly 'CoffeeTable1, Version=1.0.4652.32991, Culture=neutral, PublicKeyToken=null'. Exception has been thrown by the target of an invocation. Error in markup file 'CoffeeTable1;component/SurfaceWindow1.xaml' Line 1 Position 18.
Это файл xaml SurfaceWindow1.xaml, который пытается инициализировать:
<s:SurfaceWindow x:Class="CoffeeTable1.SurfaceWindow1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="http://schemas.microsoft.com/surface/2008"
Title="CoffeeTable1"
>
<s:SurfaceWindow.Resources>
<ImageBrush x:Key="WindowBackground" Stretch="None" Opacity="0.6" ImageSource="pack://application:,,,/Resources/WindowBackground.jpg"/>
</s:SurfaceWindow.Resources>
<Grid Background="{StaticResource WindowBackground}" >
<s:SurfaceButton Content="A" ContactEnter="StartSound" Margin="50,50,0,0" Height="100" Width="100" HorizontalAlignment="Left" VerticalAlignment="Top" Name="A6" ClickMode="Hover" />
</Grid>
</s:SurfaceWindow>