我遇到.NET程序集重定向问题。第三方程序集A引用另一个第三方程序集B. B未签名,因此它没有公钥令牌。 A的清单:
....
.assembly extern B
{
.ver 1:0:0:0
}
....
如何将绑定重定向到已签名的下一个B版本? 如果我没有在assemblyBinding / dependentAssembly / assemblyIdentity中指定publicKeyToken,则运行时找不到程序集“B,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = null”。如果我指定的重定向规则与元数据中的依赖程序集引用不匹配。
答案 0 :(得分:1)
如果您知道将要签署下一个版本,您是否可以获得publicKey的副本?
顺便说一下,从无符号转换到签名中间进程而不进行重新编译,技术上可以完成,但这是一个非常糟糕的主意。
答案 1 :(得分:1)
我发现没有办法从unsigned中绑定重定向到签名程序集。我找到的一个不太好的解决方案是从签名的程序集中删除签名。为了做到这一点,ildasm可用于反汇编,应该从.il文件中删除公钥并使用ilasm更改.il可以编译。