现在的位置: 首页 > 综合 > 正文

强名称工具 (Sn.exe) 来创建密钥对

2014年10月24日 ⁄ 综合 ⁄ 共 719字 ⁄ 字号 评论关闭

要使用强名称为程序集签名,必须具有公钥/私钥对。这一对加密公钥和加密私钥用于在编译过程中创建强名称程序集。您可以使用 来创建密钥对。密钥对文件通常具有 .snk 扩展名。

创建密钥对

  • 在命令提示处,键入下列命令:

    sn –k <file name>

    在此命令中,“文件名”是包含密钥对的输出文件的名称。

下面的示例创建名为 sgKey.snk 的密钥对。

  CopyCode image复制代码
sn -k sgKey.snk

如果您需要延迟对程序集签名并控制整个密钥对(密钥对不太可能在测试方案之外),可使用以下命令生成密钥对,然后从中将公钥提取到一个单独的文件中。首先,创建密钥对:

  CopyCode image复制代码
sn -k keypair.snk

  • 下一步,从密钥对中提取公钥,并将其复制到一个单独的文件中:

  CopyCode image复制代码
sn -p keypair.snk public.snk

  • 创建密钥对之后,必须将文件放在强名称签名工具可以找到的位置。

当使用强名称对程序集进行签名时, 查找与当前目录和输出目录相关的密钥文件。当使用命令行编译器时,只需将密钥复制到包含代码模块的当前目录即可。

如果要使用 IDE(例如 Visual Studio 2005)为程序集签署强名称,则必须知道 IDE 查找密钥文件的位置。例如,Visual Basic 2005 在包含 Visual Studio 解决方案的目录下查找密钥文件,而 C# 编译器则在包含二进制文件的目录下查找密钥文件。将密钥文件放在适当的项目目录中并设置文件属性,如下所示:

Visual Basic  CopyCode image复制代码
<Assembly: AssemblyKeyFileAttribute("key.snk")>

C#  CopyCode image复制代码
[assembly: AssemblyKeyFileAttribute(@"../../key.snk")]

抱歉!评论已关闭.