【问题标题】:System.IO.FileNotFoundExceptionSystem.IO.FileNotFoundException
【发布时间】:2010-06-25 20:20:13
【问题描述】:

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

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

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

最后我尝试使用应用程序复制同一文件夹中的所有 dll,directx 错误消失了,但他们在程序试图从图像制作 Direct3D.Texture(图像的链接是正确的)。

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

【问题讨论】:

  • 欢迎来到stackoverflow。你会发现,如果你把有问题的代码贴出来,你会得到更好的答案……不看代码很难确定哪里出了问题。
  • 您使用的是哪种托管 DirectX 实现?瘦身DX? XNA?还有什么?
  • @Oded:谢谢!我已经可以说很高兴来到这里。好吧,我可以发布代码,但我看不出这有什么用,因为问题出在引用上(据我所知,这些引用并不完全在代码中)。 @Aren B:嗯......好吧,我承认,我不明白这个问题。它基本上只是带有来自 .NET 的普通 .dll 的 C#(托管 directx)

标签: c# .net directx filenotfoundexception


【解决方案1】:

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

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

【讨论】:

  • 为了记录,XNA 取代了托管 DirectX,但它 NOTHING 喜欢它。 XNA 是一个游戏框架,而不是 Directx 的托管门户。
  • @Aren B:我明白你的意思。在这种情况下,你会建议我和什么一起工作?我刚开始真正的编程,但我仍然不确定先走哪条路:有 DirectX,但也有 OpenGL、XNA 作为框架等(对于语言,我现在肯定会坚持使用 C#)你会怎么做说最好的组合是?
  • @cantrem SlimDX,我没有玩过它,但它是托管 DirectX 的精神继承者。与过多的抽象层相比,让您可以更直接地访问 DX。
  • @Aren 有趣的部分来了:我有一个使用 SlimDX(用于操纵杆输入)的 Windows 应用程序,我刚刚将它部署到另一台机器并得到了 FileNotFoundException ... googleing SlimDX + FileNotFoundException 把我带到了这里;-)
【解决方案2】:

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

DLL 至少是:

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

【讨论】:

  • 是的。很快,但很脏。而且,在这种情况下,它不起作用(在我的第一篇文章中,我写道,当我在 app 文件夹中复制 dll 时弹出另一个有趣的错误)。
【解决方案3】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多