-keyfile

指定包含密钥或密钥对的文件,以便为程序集指定强名称。

语法

-keyfile:file

论据

file 必填。 包含密钥的文件。 如果文件名包含空格,请将名称括在引号 (“ ) 中。

注解

编译器将公钥插入程序集清单,然后使用私钥对最终程序集进行签名。 若要生成密钥文件,请在命令行键入 sn -k file。 有关详细信息,请参阅 Sn.exe(强名称工具)。

如果使用 编译 -target:module,则密钥文件的名称保存在模块中,并合并到使用 -addmodule 编译程序集时创建的程序集中。

还可以使用 -keycontainer 将加密信息传递给编译器。 如果需要部分签名的程序集,请使用 -delaysign

也可以在任何公共中间语言模块的源代码中将此选项指定为自定义属性(AssemblyKeyFileAttribute)。

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

请注意,密钥文件可能仅包含公钥。

有关对程序集进行签名的详细信息,请参阅 “创建和使用 Strong-Named 程序集 ”。

注释

此选项 -keyfile 在 Visual Studio 开发环境中不可用;仅在从命令行编译时才可用。

示例:

以下代码编译源文件 Input.vb 并指定密钥文件。

vbc -keyfile:myfile.sn input.vb

另请参阅