System.IO.FileNotFoundException未处理Message =“找不到指定的模块。 (HRESULT异常:0x8007007E)“

时间:2012-01-25 02:48:30

标签: c# c++ visual-studio-2008 dll module

我正在寻找新手的代码。我在一个名为UI的项目中有c ++代码,它有许多依赖项,它们可以正确构建并且不会返回任何错误。在Visual Studio 2008中的相同解决方案中,我创建了一个新的C#窗体表单项目,并添加了对UI项目生成的dll的引用,并添加了一个"使用"声明。我想要做的是引发UI项目中定义的一个对话框,所以我有像

这样的代码
UIDialog uIDialog = new UIDialog(); 
uIDialog.Show();

构建。

当我在调试中运行我的项目时,当它到达" new"部分,我得到上面的例外 - 没有关于丢失模块是什么的信息。

有没有办法找出缺少的模块是什么,而无需深入挖掘UI项目中的代码?

(我试图重新解释这个问题,以便它不会被关闭。如果有人可以给出明确的答案,那么,#34;我没有"我"我"我"我"我"我"我"我"我" 39; d发现非常有帮助。也感谢关闭之前版本的人。)

编辑:

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:\..\ui\UIDialog.h:line 61
InnerException:

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

它不是32/64位问题 - 在到达这里之前,我有一个典型的" BadImageFormatException",所以为了超越我强迫一切都是32位。

2 个答案:

答案 0 :(得分:1)

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

或者始终存在DependencyWalker,尽管我多年没有使用过它。

答案 1 :(得分:0)

您可以turn on Fusion logging查看加载程序正在执行的操作并找出缺少的内容。