3

这是一个很长的故事:我最近在 Visual Studio 中构建了一个使用 DirectX 的 win32 应用程序,我将它发送给一些朋友以验证它是否可以在其他机器上运行。他们都安装了 .NET,但该应用程序并不适用于我所有的朋友。

在两种情况下,我们在尝试运行程序时出现“无法加载文件或程序集 Microsoft.DirectX.DirectInput 版本 1.0.29...”的错误。

我认为他们必须有其他版本的 .dll,经过一番检查,我发现我的引用是针对固定版本的。我将所有directX dll的“固定版本”属性更改为false,但是当他们尝试运行应用程序时仍然出错。

最后,我尝试使用应用程序复制同一文件夹中的所有 dll,directx 错误消失了,但在程序尝试的行出现“System.IO.FileNotFoundException 找不到指定模块”错误从图像制作 Direct3D.Texture(图像的链接是正确的)。

如果您能帮助我提供解决上述任何问题的提示,我将不胜感激!

4

3 回答 3

2

看起来您正在使用托管 DirectX,而您的一些朋友可能没有安装它。据我所知,MDX 的可再发行包不再可用。(反正不是来自微软,你也许可以在某个地方找到它)

请注意,托管 DirectX 基本上已过时,在许多情况下XNA是更好的选择。

于 2010-06-25T20:34:52.503 回答
1

如果您使用的是 ManagedDirectX,则可以使用快速而肮脏的方法来解决此问题。这只是将 ManagedDirectX dll 复制到同一目录中。MS 说它不起作用,而且它绝对不是很适合生产环境。但它会在大多数情况下工作。

DLL 至少是:

Microsoft.DirectX.Direct3D.dll
Microsoft.DirectX.Direct3DX.dll
Microsoft.DirectX.dll
于 2010-06-25T21:11:46.410 回答
0

你的问题现在可能已经解决了。

我也遇到同样的问题两天了,我终于解决了。我尝试了很多网上建议的解决方案,但对我没有任何帮助。我的项目引用了另一个项目,该项目又引用了 Microsoft.DirectX.Direct3DX.dll。当我运行项目时,出现异常: System.IO.FileNotFoundException: 无法加载文件或程序集“Microsoft.DirectX.Direct3DX.DLL”或其依赖项之一。指定的模块无法找到。

事实证明,这个 dll 正在搜索“它的依赖项之一”并且找不到它们,因为我的机器上没有安装 DirectX。所以我的解决方案是安装 DirectX。

有关 DirectX Web 安装程序,请参阅以下链接:http: //www.microsoft.com/en-in/download/details.aspx?id=35

我希望这可以帮助其他面临同样问题的人!:)

于 2014-03-10T12:30:15.123 回答