在没有源代码的情况下,给一个没有强名的DLL组件强名
反汇编 DLL:
ildasm /all /out:Assembly.il YourAssembly.dll修改 IL 文件:
在生成的Assembly.il文件中添加强名称密钥引用:.assembly YourAssembly { .publickey = (生成的公钥令牌) .ver 1.0.0.0 }如:
.publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 // .$.............. 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 // .$..RSA1........ 17 51 79 E3 E5 00 53 AA 1D 7C 9D 09 31 0D D2 AE // .Qy...S..|..1... CD 6E 80 FF C7 33 14 9E CD 64 AA 2E F1 D0 A7 0C // .n...3...d...... BF 92 D4 70 E1 7E 42 60 AF 61 21 63 5F 68 03 07 // ...p.~B`.a!c_h.. A2 A3 B3 96 AC BC 38 BC 46 19 33 D9 9D 30 07 21 // ......8.F.3..0.! FC 8D FC 8F 89 C0 8A 33 80 69 59 3B 36 54 3F A2 // .......3.iY;6T?. 5F 1D CF 63 44 43 2C 40 E0 4D CB 1D 1C 18 DB C5 // _..cDC,@.M...... 14 DC C9 A6 35 AF 28 3F 44 E1 E9 8B 06 6D 70 8B // ....5.(?D....mp. 0F F5 7E 92 6C AB 3D 1B 0D 41 7E 34 E4 1A 45 E1 ) // ..~.l.=..A~4..E.创建强名称密钥(如果没有):
sn -k MyKeyPair.snk重新汇编:
ilasm /dll /key=MyKeyPair.snk /output=YourAssembly_Signed.dll Assembly.il