有时候你会需要一个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:WINDOWSMicrosoft.NET workv2.0.50727ilasm.exe
  • C:Program FilesMicrosoft Visual Studio 8SDKv2.0Binildasm.exe
  • C:Program FilesMicrosoft Visual Studio 8SDKv2.0Binsn.exe

关于什么是强命名(Strong Name)请参考这个: Strong Names Explained

收藏 打印