有时候你会需要一个DLL是强命名的,比如你想把这个文件放到GAC里面。如果这是一个第三方的DLL,你没有源代码,这会是一件比较麻烦的事情。有一个方法可以解决这个问题。
在VS.NET的命名行窗口下,输入如下的代码。
1,生成一个KeyFile
sn -k keyPair.snk
2, 得到程序集的MSIL
ildasm SomeAssembly.dll /out:SomeAssembly.il
3,为了避免冲突,把原来的DLL文件改名
ren SomeAssembly.dll SomeAssembly.dll.orig
4, 使用导出的MSIL和刚创建的KeyFile生成一个新的的DLL文件。
ilasm SomeAssembly.il /dll /key= keyPair.snk
Where do these tools live
这些工具都在哪里?
- C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
- C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\ildasm.exe
- C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe
关于什么是强命名(Strong Name)请参考这个: Strong Names Explained