.net 拆解和重新组装的DLL赢得';不能解决相互参照的问题
我正试图通过以下过程签署一组DLL:.net 拆解和重新组装的DLL赢得';不能解决相互参照的问题,.net,dll,il,ildasm,ilasm,.net,Dll,Il,Ildasm,Ilasm,我正试图通过以下过程签署一组DLL: ildasm原始DLL到IL ilasm(和强命名)将IL返回到DLL 通过Visual Studio对象浏览器查看的每个DLL都是正确的,但如果重建的DLL引用了另一个重建的DLL中的对象(例如扩展其中定义的对象),则无法解析引用。对系统程序集的引用已正确解析 有人能告诉我为什么吗 我正在使用x86架构的.Net SDK v2。基于有用的Marvin Smit注释,我尝试编辑由ildasm.exe生成的.il文件,并找到了解决方案 在文本编辑器中打开.
原始DLL到ILildasm
(和强命名)将IL返回到DLLilasm
我正在使用x86架构的.Net SDK v2。基于有用的Marvin Smit注释,我尝试编辑由
ildasm.exe
生成的.il
文件,并找到了解决方案
在文本编辑器中打开.il
文件,文件的第一行显示对外部程序集的引用:
.assembly extern MY_EXT_ASSEMBLY
{
.ver 10:0:1:0
}
我将每次出现的这些引用都更改为:
.assembly extern MY_EXT_ASSEMBLY
{
.publickeytoken = (4B DC CA FF 2F A8 6D EE )
.ver 10:0:1:0
}
其中,.publickeytoken
属性的值通过以下命令(表单SDK)找到:
这将产生如下结果:
Public key token is 4bdccaff2fa86dee.
我重建了我的VS解决方案并编译了所有内容。这可能是由于“FQN”引用。由于FQN已更改(它现在有PublicKeyToken=null以外的内容),因此它被视为另一个库,任何指向PublicKeyToken为null的库的内容都将无法找到新库。确定。我想你是对的,马文;这很好地解释了我的情况,谢谢。但现在我如何更正新签名程序集中对另一个新签名程序集中的引用。我可以吗?对不起,我不能早点回复。(站在类atm前面)但我看到您找到了修改程序集信息头中引用的方法:)。
Public key token is 4bdccaff2fa86dee.