如何:对程序集进行签名 (Visual Studio)

程序集签名(也称为强名称签名)赋予应用程序或组件一个唯一标识,其他软件可用该标识来显式标识和引用该应用程序或组件。 强名称由程序集的简单文本名、版本号、区域性信息(如果提供)以及公钥/私钥对组成。 这些信息存储在一个密钥文件中;此文件可以是个人信息交换 (PFX) 文件或来前用户的 Windows 证书存储区中的证书。 有关更多信息,请参见ClickOnce 应用程序的强名称签名

备注

本主题仅适用于 Visual C# 和 Visual Basic 项目。有关如何使用在 Visual C++ 项目的程序集的信息,请参见 强名称程序集(程序集签名)(C++/CLI)"。

为了对程序集进行签名,Visual Studio 仅支持存储在本地计算机上的项目系统中的个人信息交换 (.pfx) 文件和强名称密钥 (.snk) 文件。

在某些情况下,您可能只具有对公钥的访问权限。 如果是这样,您可以使用“延迟签名”来推迟分配私钥。

可以使用**“项目设计器”“签名”**页中的选项为程序集签名,如下所示;有关更多信息,请参见 “项目设计器”->“签名”页

下面的步骤仅适用于为程序集签名。 如果希望为应用程序和部署清单签名,请参见 如何:对应用程序和部署清单进行签名

使用新密钥文件对程序集进行签名

  1. 在项目节点在**“解决方案资源管理器”中处于选中状态下,从“项目”菜单中,单击“属性”(或在“解决方案资源管理器”中右击该项目节点,然后单击“属性”**)。

  2. 在**“项目设计器”中,单击“签名”**选项卡。

  3. 选中**“为程序集签名”**复选框。

  4. 指定一个新密钥文件。 在**“选择强名称密钥文件”下拉列表中,选择“<新建...>”**。 请注意,始终以 .pfx 格式创建新密钥文件。

    将显示**“创建强名称密钥”**对话框。

  5. 在**“创建强名称密钥”对话框中,为新密钥文件输入名称和密码,然后单击“确定”**。

  6. 可以启用延迟签名。通过选择这些 仅延迟签名 复选框。 一个延迟签名的项目不会运行,因此,您不能对其进行调试。 但是,通过使用 -Vr 选项,的 Sn.exe(强名称工具) " 可以跳过验证在开发过程。

使用现有密钥文件为程序集签名

  1. 在项目节点在**“解决方案资源管理器”中处于选中状态下,从“项目”菜单中,单击“属性”(或在“解决方案资源管理器”中右击该项目节点,然后单击“属性”**)。

  2. 在**“项目设计器”中,单击“签名”**选项卡。

  3. 选中**“为程序集签名”**复选框。

  4. 指定一个现有密钥文件。 在**“选择强名称密钥文件”下拉列表中,选择“<浏览...>”**。

  5. 在**“选择文件”对话框中,导航到该密钥文件或在“文件名”框中输入其路径;然后单击“打开”**以选择它。 (有关更多信息,请参见 如何:创建公钥/私钥对。)

    备注

    可通过单击“更改密码”更改密钥文件的密码。在 更改密钥密码 对话框中,输入旧密码,然后输入新密码。

  6. 可以启用延迟签名。通过选择这些 仅延迟签名 复选框。 延迟签名的项目不会运行,因此,您不能对其进行调试。 但是,通过使用 -Vr 选项,的 Sn.exe(强名称工具) " 可以跳过验证在开发过程。

请参见

参考

“项目设计器”->“签名”页

概念

ClickOnce 应用程序的强名称签名

其他资源

管理程序集签名和清单签名