C# 找不到指定的模块0x8007007E

C# 找不到指定的模块0x8007007E,c#,.net,c++,windows,visual-studio,C#,.net,C++,Windows,Visual Studio,当我在代码中单步执行时,在表单的构造函数中,会调用以相同形式声明的方法。在进入该方法之前,我得到一个System.IO.FileNotFoundException,消息为“找不到指定的模块。(HRESULT的异常:0x8007007E)”。我试图输入的成员方法声明不安全,因为它处理非托管C++代码,但就像我说的,无论如何我都无法进入该方法。 因为听起来像是DLL依赖问题,所以我运行了dependency Walker。Dependency walker仅显示SHLWAPI.DLL下MPR.DLL

当我在代码中单步执行时,在表单的构造函数中,会调用以相同形式声明的方法。在进入该方法之前,我得到一个System.IO.FileNotFoundException,消息为“找不到指定的模块。(HRESULT的异常:0x8007007E)”。我试图输入的成员方法声明不安全,因为它处理非托管C++代码,但就像我说的,无论如何我都无法进入该方法。 因为听起来像是DLL依赖问题,所以我运行了dependency Walker。Dependency walker仅显示SHLWAPI.DLL下MPR.DLL的问题。问题的方法是WNetRestoreConnectionA,我从未调用过它。dependency walker常见问题解答表明这不是问题。此外,这不是一个web应用程序或任何东西。不幸的是,我被VS2005卡住了


发生此问题的可能原因是什么?关于我可能缺少什么或者如何调试此问题,您有什么想法吗?

当.Net运行时JIT您将要进入的方法时,会发生错误,因为它找不到该方法使用的类型之一


您不能单步执行的方法到底做了什么,它使用了什么类型/方法?

您是在分析模式下运行dependency walker,还是仅在静态分析中运行?我认为,分析模式正是您所需要的。但我相信有更好的解决办法

你可以试试。这将使您至少可以看到它试图加载的文件,并且从中您可能可以找出问题所在


我的建议是启动它,然后关闭日志记录。到达异常即将发生的位置,重新启用日志记录,在调试器中单步执行以生成错误,然后再次禁用日志记录。这将使您只需处理少量日志,否则可能会很快变得非常笨拙。

回答得很好,这似乎就是问题所在。有一个类试图从托管C++中使用它期望在发布文件夹中但不存在的类。附带问题,为什么当我单击类的“转到定义”时,我会转到这个疯狂的目录C:[PROFILE]\LOCALS~1\Temp\3292$[DLLNAME]$v2.0.50727[class_NAME],并且成员签名都在那里。我会+1你,因为这比谷歌给我的要好,但没有代表。我在尝试在新安装的机器上运行调试中编译的混合模式程序集时遇到了同样的问题。我确实成功地使用了ProcMon来找出我需要的运行库调试版本。我在博客中提到了使用ProcessMonitor来解决混合模式程序集依赖性问题,我希望它能有所帮助。通过这种方法,诀窍是为导致
找不到名称的文件查找
QueryOpen
操作流。