这是情况。我有 DLL A 和 BAdll 参考并使用 B.dll 中的代码。B.dLL 没有做它应该做的事情,所以我试图向它添加一些调试语句。
我使用 ilSpy 反编译 B.dll 并添加我想要的代码,编译一个新的 B.dll,删除旧的并放入我的新的。
现在 A.DLL 失败并出现此错误。
System.IO.FileLoadException: Could not load file or assembly 'B, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b089z623fagfd396' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'B, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b089z623fagfd393'
由于我没有源代码或私钥,我认为我不可能让我的 DLL 的公钥与旧的匹配。由于该键不匹配,因此引用失败。这是设计使然吗?是专门为阻止我做我想做的事而建造的结构吗?本质上,我想我正在破解一个我没有源代码的应用程序。
无论如何我可以做到这一点吗?
我想我也可以反编译和重建 A.dll,但实际上有大约 200 个 DLL 都相互引用。