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

9
所以,我有一个用C# 2.0编写的第三方.dll文件,需要进行强类型化,但我没有源代码。我找到了几篇文章,介绍如何对.dll进行反汇编,并使用强名称密钥文件重新组装它。
问题是,VS2010将其重新编译为.NET 4.0 .dll,而不是2.0 .dll(我们应用程序当前所在的版本)。我无法将“新”的dll包含在我的项目中,因为它会给我一个运行时错误:“此程序集是由当前加载的运行时更新的运行时构建的,无法加载。”如果我不签名dll,我会得到“程序集未强类型化”的错误。
是否有一种方法可以使用VS2010 ilasm.exe在2.0框架中重新编译此.dll文件?
2个回答

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

不可以使用4.0的ilasm编译成2.0版本;你应该使用来自2.0框架目录下的ilasm.exe,例如C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

请注意,你只需要运行时环境,而不需要SDK或VS 2005/2008。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接