Monogame:在重新安装 DirectX 之前没有音效。

Monogame: no sound effects until DirectX reinstalled.

环境:Windows10(全新安装),在 DirectX 项目上使用 Monogame 3.6(同样适用于 3.5)。 问题:除非重装DirectX才能听到任何音效

在重新安装 DirectX 之前,没有任何异常或状态信息可以用来追踪为什么听不到声音。重新安装后,它可以正常工作。相同的代码,甚至相同的二进制文件。

我不希望我的用户必须重新安装 DX。这会很尴尬,因为 Win10 预装了 DX。

所以我想知道是否有人知道我可以在项目文件夹中包含哪些额外的 DX 库,以便在不重新安装 DX 的情况下可以听到声音效果?

请务必了解,您不能 "Install DirectX" 在 Windows 10 或 Windows 的任何版本上返回到 Windows XP Service Pack 2。 DirectX End-User Runtime 包(a.k.a DXSETUP)实际上并不安装 Direct3D、DirectPlay、DirectSound 等。它甚至不包括安装 DirectX 所需的 CAB Windows 的旧版本。

Not So Direct Setup

安装的 "DirectX" 版本只能通过 Windows 更新更新,安装新版本的 Windows,或某种服务包。 Windows 10 包括 DirectX 9.0c、DirectX 10.x、DirectX 11.x 和 DirectX 12.0 的所有受支持组件,作为 OS.

的一部分

Direct3D 11 Deployment for Game Developers

DirectX 最终用户运行时 包安装的是各种遗留的并行辅助组件:D3DX9、D3DX10、D3DX12、XAUDIO2.7 或更早版本、XINPUT 1.3 或更早版本、XACTENGINE 和遗留的 Managed DirectX 1.1 程序集。而已。此外,它安装了大约 100 MB 的这些东西,包括曾经为 x86 和 x64 提供的每个版本,这意味着您的游戏永远不会使用其中的大部分。可能 Monogame 设置为使用 XAudio 2.7,这是支持 Windows7 的最后一个 XAudio 版本。因此,它只需要来自 DXSETUP 的少量 CAB。

KB179113: How to install the latest version of DirectX
XAudio2 and Windows 8

最后,停产 DirectX SDK(2010 年 6 月)中提供的 DXSETUP 文件实际上不是 DirectX End 的最新版本-用户运行时。我仅在 2011 年 4 月的一次在线更新中修复了一些错误。

DXSETUP Update