2011-05-07 41 views
8

因此,我用C#2.0編寫的第三方.dll需要強類型,而且我無法訪問源代碼。我發現了幾篇關於如何反彙編.dll並用強命名密鑰文件重新組裝它的文章。用VS 2010強烈命名3rd party 2.0 .dll Ilasm.exe

問題我遇到的問題是,VS2010將其重新編譯爲.NET 4.0 .dll而不是2.0 .dll(我們的應用程序當前所在的版本)。我不能在我的項目中包含「新」dll,因爲它給我一個運行時錯誤:「此程序集由比當前加載的運行時更新的運行時構建,無法加載。」如果我不簽名dll,我會得到「程序集不是強類型」。錯誤。

有沒有辦法在使用VS2010 ilasm.exe的2.0框架中重新編譯這個.dll?

回答

13

。當您鍵入「ilasm.exe」時,它將設置運行C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ilasm.exe的環境。錯誤的版本,你想v2.0.50727 \ ilasm.exe。輸入全名。或者複製並編輯vc \ bin \ vsvarsall.bat

1

不,你不能用4.0 ilasm編譯成2.0;你應該使用2.0框架目錄下的ilasm.exe;例如C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

請注意,你應該需要的是這樣的運行,而不是SDK或者您可能正在使用的Visual Studio 2010的命令提示符VS 2005/2008年