System.IO.FileNotFoundException

时间:2010-06-25 20:20:14

标签: c# .net directx filenotfoundexception

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

在两种情况下,当我们尝试运行程序时,我们有些“无法加载文件或汇编Microsoft.DirectX.DirectInput版本1.0.29 ......”错误。

我认为他们必须有.dll的其他版本,经过一些检查后,我发现我的引用是修复版本。我将所有directX dll的“fixed version”属性更改为false,但在尝试运行应用程序时仍然出现错误。

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

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

如果你使用的是ManagedDirectX,那么解决这个问题的方法就是Quick and Dirty。这就是将ManagedDirectX dll复制到同一目录中。 MS表示它不起作用,它绝对不适合生产环境。但它在大多数情况下都有效。

DLL至少是:

Microsoft.DirectX.Direct3D.dll
Microsoft.DirectX.Direct3DX.dll
Microsoft.DirectX.dll

答案 2 :(得分:0)

您的问题现在可能已得到解决。

我现在也经历了同样的问题2天了,我终于解决了。我尝试了很多在网上提出的解决方案,但没有任何方法可以帮助我。我的项目引用了另一个项目,而该项目又引用了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

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