/KEYFILE(指定密钥或密钥对以便为程序集签名)

/KEYFILE:filename

参数

filename
包含密钥的文件。 如果字符串包含空格,则将字符串放置在双引号 (" ") 中。

备注

链接器在程序集清单中插入公钥,然后使用私钥对最终的程序集进行签名。 若要生成密钥文件,请在命令行键入 sn -kfilename。 一个签名的程序集据会有一个强名称。

如果使用 /LN 进行编译,则密钥文件的名称将保存在模块中,并合并到在编译包含对模块的显式引用的程序集时创建的程序集,通过 #using 或与 /ASSEMBLYMODULE 链接时。

你也可以使用 /KEYCONTAINER 将加密信息传递给链接器。 如果需要部分签名的程序集,请使用 /DELAYSIGN。 有关对程序集签名的更多信息,请参阅强名称程序集(程序集签名)(C++/CLI)创建和使用强名称程序集

如果同时指定了 /KEYFILE 和 /KEYCONTAINER(通过命令行选项或通过自定义特性),则链接器将首先尝试用密钥容器。 如果成功,则使用密钥容器中的信息对程序集签名。 如果链接器没有找到密钥容器,它将尝试使用通过 /KEYFILE 指定的文件。 如果成功,则使用密钥文件中的信息对程序集签名,并且将密钥信息安装到密钥容器中(类似于 sn -i),以便在下一次编译中,密钥容器选项将生效。

密钥文件可能仅包含公钥。

影响程序集生成的其他链接器选项包括:

在 Visual Studio 开发环境中设置此链接器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“链接器”>“命令行”属性页 。

  3. 将该选项输入“附加选项”框中。

以编程方式设置此链接器选项

另请参阅

MSVC 链接器参考
MSVC 链接器选项