C# WPF部署问题
我有一个使用windows media元素播放音乐的应用程序。下面是播放音乐的代码:C# WPF部署问题,c#,wpf,C#,Wpf,我有一个使用windows media元素播放音乐的应用程序。下面是播放音乐的代码: public void PlaySound() { string solutionPath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).Parent.Parent.Parent.FullName; string path = Path.Combine(solutionPath, "
public void PlaySound()
{
string solutionPath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).Parent.Parent.Parent.FullName;
string path = Path.Combine(solutionPath, "FolderNameWithinSolution", myMusic.wav);
mediaElement.LoadedBehavior = MediaState.Manual;
mediaElement.Stop();
mediaElement.Source = new Uri(path, UriKind.RelativeOrAbsolute);
mediaElement.Volume = 0.2;
mediaElement.Play();
}
myMusic.wav是一个文件夹名中保存的文件。这被设置为“内容&始终复制”。这一切都很好,直到我部署它,然后应用程序就不会播放音乐
我检查了应用程序文件,文件夹中有音乐,但是音乐显示为myMusic.wav.deploy
请有人帮我把这个设置错了。我还尝试在应用程序文件中重命名该文件以删除.deploy,但仍然不起作用,
.Parent.Parent.Parent.FullName
表示当您的程序从project\bin\debug
目录运行时,您可能正在查找与.SLN文件位于同一位置的.WAV文件。部署.WAV文件后,这里不是该文件所在的位置。此外,我认为Copy Always
应该将.WAV文件复制到可执行文件所在的目录中。由于您使用可执行文件作为导航的起点来定位声音文件,因此需要确保它在开发环境中和部署后都位于与可执行文件完全相同的位置
基本上,您的文件在部署时会移动到其他地方。确保在构建配置和安装程序配置中都指定了它应该放在哪里