过去一周我一直在追逐这个例外。
情况是:
我有一个用 C# 编写并在 Visual Studio 2010 中构建的应用程序。该应用程序包含一个 DLL,它是非托管代码库的包装器。非托管代码是用 C++ 编写并在 Visual Studio 2008 中构建的。这是必需的,因为代码引用了其他库 (Qt) 并且该代码针对 WinCE 版本 5(由于现场支持的设备而必需)。
我已经尝试了我在这里看到的许多建议,包括使用各种依赖遍历器(VS 2008 依赖、dependency_walker 和 Dependz)以及其他工具,例如来自 SysInternals 的 Reflector 和 Process Monitor。
所有工具要么显示没有问题(Reflector),要么显示在我的环境(Win 7)中已过时的旧依赖项,如 DCOMP.DLL、GPSVC.DLL 和 IESHIMS.DLL。
在调试器中,我可以单步执行我的代码,直到我实例化一个引用我的托管包装 DLL 的对象。它不会进入对象的实例化,而是立即抛出异常。
在 Process Explorer(来自 SysInternals)中,我可以看到加载的托管 DLL 以及必要的附属 DLL。在出现问题的进程监视器(来自 SysInternals)中,没有未找到消息的堆栈。它只是失败了。
发现此问题的任何想法或想法将不胜感激。