如何链接.NET 4.0解决方案中的.NET 2.0程序集
问题描述:
我有一个使用.NET 4.0构建的项目。我有很多代码会很痛苦地转换回2.0。如何链接.NET 4.0解决方案中的.NET 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找出缺少什么依赖项。
答
- 首先找到它的所有依赖关系。你没有在这里列出的事实令人不安。
- 你应用程序是否直接引用所有的依赖关系?