用不同的版本替换组件

时间:2013-08-22 11:01:55

标签: .net clr .net-assembly gac

我的程序是使用程序集特定版本编译的,可以使用ilspy作为

在引用中找到
 Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

我找不到这个版本的程序集。我丢失了文件。相反,我有版本

PublicKeyToken=null.

我发现汇编可以手工安装到GAC中,用pulbic密钥命名目录。

但使用它是不切实际的。

我遇到sn.exe -Vr switch这应该会关闭版本验证。

这样做有用吗?有人试过吗?

2 个答案:

答案 0 :(得分:0)

GAC需要签署程序集,因此需要公钥。即使它有效,尝试破解它也不是一个好主意。你不能用以前使用的密钥签名吗?或者重新编译你的程序?

答案 1 :(得分:0)

如果它不是一个过于复杂的系统,我会反汇编需要你没有的signed / gac'd dll的exe,并修复IL中的引用,使其不是你拥有的那个。将IL重组为exe。

Mike Stall的博客很擅长解释其中的大部分内容:Debugabbility with Roundtripping Assemblies