System.IO.FileNotFoundException未经处理消息=“找不到指定的模块.(HRESULT中的异常

System.IO.FileNotFoundException was unhandled Message=“The specified module could not be found. (Exception from HRESULT: 0x8007007E)”

本文关键字:模块 异常 HRESULT 找不到 FileNotFoundException IO 处理 消息 System      更新时间:2023-10-16

我正在寻找对我来说是新的代码。我在一个名为UI的项目中有c++代码,它有很多依赖项,构建正确,不会返回任何错误。在VisualStudio2008中的同一解决方案中,我创建了一个新的C#windows窗体项目,并添加了对UI项目生成的dll的引用,还添加了一个"using"语句。我想做的是引发UI项目中定义的一个对话框,这样我就有了类似的代码

UIDialog uIDialog = new UIDialog(); 
uIDialog.Show();

构建。

当我在调试中运行我的项目时,当它进入"新"部分时,我会得到上面的异常——没有关于缺失模块是什么的信息。

有没有什么方法可以在不深入研究UI项目中的代码的情况下找到缺失的模块?

(我试图重新表述这个问题,这样它就不会被关闭。如果有人能给出"不,没有"的明确答案,我会觉得这很有帮助。也感谢那些关闭前一版本的人。)

编辑:

System.IO.FileNotFoundException occurred
  Message="The specified module could not be found. 
(Exception from HRESULT: 0x8007007E)"
  Source="ui"
  StackTrace:
   at ui.UIDialog.Startup()
   at ui.UIDialog..ctor() in c:..uiUIDialog.h:line 61
InnerException:

这就是问题所在,没有任何明显的有用信息!

这不是32/64位的问题——在到达这里之前,我遇到了典型的"BadImageFormatException",所以为了克服这个问题,我强迫所有东西都是32位的。

您可以在引用的dll上使用MSIL反汇编程序,并在清单中检查dll的所有依赖项。反汇编程序是Windows SDK工具的一部分。

或者总是有DependencyWalker,尽管我已经好几年没用了。

您可以打开Fusion日志记录来查看加载程序在做什么,并找出缺少的内容。