代码改变世界

.NET工具篇(四)—SN.EXE

2013-03-25 07:31  左眼微笑右眼泪  阅读(2949)  评论(0编辑  收藏  举报

     SN是.NET中提供生成密钥的工具,在对程序集进行强签名的时候,需要用到一个公钥对,用这个工具,可以生成一个密钥文件,同时可以查看文件里面的公钥,并且可以使用这个工具来对程序集进行强签名。延迟签名的时候也需要使用这个工具。这个工具一般是在C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin这个路径下。启动这个工具,界面如下:

image

     启动后,主界面上就是使用的帮助,你可以查看每个命名所代表的含义。下面介绍几个常见的命令。

     1.生成一个密钥文件  sn.exe –k <filename>

image

    此时生成的密钥文件mykeys.keys里面既包含公钥也包含私钥。

    2.从密钥文件里面导出一个只包含公钥的文件 sn.exe –p mykeys.keys mypublickeys.keys

image

       3.查看公钥文件里面的公钥 sn.exe –tp <filename>

image

      4.禁止系统检查程序集的完整性 sn.exe  -Vr <assemblyName>。启动系统检查程序集的完整性sn.exe -Vu <assemblyName>。 (延迟签名的时候用)

      5.用私钥文件对程序集进行延迟签名 sn.exe –R <assemblyName> <privatekeyfile>

      有两点需要注意的:一是sn.exe的命令是分大小写的,大小写不同代表的含义也不同。二是sn.exe没有提供命令去查看私钥。另外sn.exe的一些常用功能,可以在vs编译器里面通过界面的方式来实现。