使用VS 2010 Ilasm.exe强烈命名第三方2.0 .dll

时间:2011-05-07 01:09:59

标签: c# visual-studio-2010 ilasm

所以,我有一个用C#2.0编写的第三方.dll需要强类型,我无法访问源代码。我找到了几篇关于如何反汇编.dll并使用强名称密钥文件重新组装它的文章。

我遇到的问题是VS2010将其重新编译为.NET 4.0 .dll而不是2.0 .dll(我们的应用程序当前所在的版本)。我不能在我的项目中包含“new”dll,因为它给我一个运行时错误:“此程序集由比当前加载的运行时更新的运行时构建,无法加载。”如果我没有签署该DLL,我会得到“程序集不是强类型”。错误。

有没有办法在2.0框架中使用VS2010 ilasm.exe重新编译这个.dll?

2 个答案:

答案 0 :(得分:14)

您可能正在使用Visual Studio 2010命令提示符。当您键入“ilasm.exe”时,它将设置环境以运行C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ilasm.exe。错误的版本,你想要v2.0.50727 \ ilasm.exe。输入全名。或者复制并编辑vc \ bin \ vsvarsall.bat

答案 1 :(得分:1)

不,你不能使用4.0 ilasm编译为2.0;你应该使用2.0框架目录中的ilasm.exe;例如C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

请注意,您需要的只是运行时,而不是SDK或VS 2005/2008。