-1

我的程序已使用程序集特定版本编译,该版本可以在使用 ilspy 的引用中找到

 Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

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

PublicKeyToken=null.

我发现可以手动将程序集安装到 GAC 中,使用公钥命名目录。

但是使用起来是不切实际的。

我遇到了sn.exe -Vr switch应该关闭版本验证的问题。

它是这样工作的吗?有没有人试过这个?

4

2 回答 2

0

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

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

于 2013-08-31T20:25:45.833 回答
0

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

于 2013-08-22T20:36:25.793 回答