繁体   English   中英

如何在.NET 4.0解决方案中链接.NET 2.0程序集

[英]How to link a .NET 2.0 assembly in a .NET 4.0 solution

我有一个使用.NET 4.0构建的项目。 我有很多代码很难转换回2.0。

我尝试导入使用.NET 2.0构建的Dll。 一切正常,直到我尝试从该DLL执行代码。 它说它无法加载指定的模块或其依赖项之一

我使用dumpbin.exe检查它可以具有哪些依赖项

File Type: DLL

  Section contains the following imports:

    mscoree.dll
                402000 Import Address Table
                4057F0 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                    0 _CorDllMain

因此,我的猜测是dll尝试加载,但无法从2.0版中找到mscoree.dll,从而引发异常。

我试图手动加载我的目标模块

Assembly asm = Assembly.LoadFrom(dllPath);

现在,Visual Studio调试器列出了已加载的模块,但仍无法访问它。 Windows搜索报告数十个“ mscoree.dll”分散在c:\\ windows目录中,因此我对手动加载它有些怀疑。

您还无法诊断问题。 Dumpbin.exe不会向您显示任何托管程序集都不会显示的内容。 这也不是混合CLR依赖关系所特有的问题。

使用fuslogvw.exe找出缺少的依赖项。

  1. 首先找到其所有依赖项。 您未在此处列出它们的事实令人困扰。
  2. 您的应用程序直接引用了所有上述依赖吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM