WPF部署问题

本文关键字:问题 部署 WPF | 更新日期: 2023-09-27 17:49:38

我有一个使用windows媒体元素播放音乐的应用程序。下面是播放音乐的代码:

   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是保存在FolderNameWithinSolution中的文件。设置为Content &复制。这一切都很好,直到我部署它,然后应用程序只是不播放音乐。

我检查了应用程序文件,文件夹中出现了音乐,但是音乐显示为mymusic . wave .deploy.

谁能帮我把这个设置错了。我还尝试在应用程序文件中重命名文件以删除.deploy,但仍然不起作用,

WPF部署问题

.Parent.Parent.Parent.FullName意味着当您的程序从project'bin'debug目录运行时,您可能正在寻找与。sln文件相同位置的。wav文件。这不是. wav文件部署后的位置。此外,我相信Copy Always应该复制。wav文件到同一目录,你的可执行文件是在。由于您正在使用可执行文件作为导航中的起点来定位声音文件,因此您需要确保它在开发环境中和部署后相对于可执行文件位于完全相同的位置。

基本上,您的文件在部署时移动到其他地方。确保您在构建配置和安装程序配置中都指定了它应该放在哪里。