/keyfile

指定包含密钥或密钥对的文件以给予程序集强名称。

/keyfile:file

参数

  • file
    必选。 包含密钥的文件。 如果文件名包含空格,则将该文件名置于引号 (" ") 中。

备注

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

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

也可以通过 /keycontainer 将加密信息传递给编译器。 如果需要部分签名的程序集,则使用 /delaysign

还可以将此选项指定为任何 Microsoft 中间语言模块的源代码中的自定义特性 (AssemblyKeyFileAttribute)。

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

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

有关对程序集进行签名的更多信息,请参见 创建和使用具有强名称的程序集

备注

/keyfile 选项不能在 Visual Studio 开发环境中使用;它仅在从命令行进行编译时可用。

示例

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

vbc /keyfile:myfile.sn input.vb

请参见

参考

/reference (Visual Basic)

示例编译命令行 (Visual Basic)

概念

程序集和全局程序集缓存(C# 和 Visual Basic)

其他资源

Visual Basic 命令行编译器