簡體   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