如何:对程序集进行签名 (Visual Studio)
程序集签名(也称为强名称签名)赋予应用程序或组件一个唯一标识,其他软件可用该标识来显式标识和引用该应用程序或组件。 强名称由程序集的简单文本名、版本号、区域性信息(如果提供)以及公钥/私钥对组成。 这些信息存储在一个密钥文件中;此文件可以是个人信息交换 (PFX) 文件或来前用户的 Windows 证书存储区中的证书。 有关更多信息,请参见ClickOnce 应用程序的强名称签名。
备注
本主题仅适用于 Visual C# 和 Visual Basic 项目。有关如何使用在 Visual C++ 项目的程序集的信息,请参见 强名称程序集(程序集签名)(C++/CLI)"。
为了对程序集进行签名,Visual Studio 仅支持存储在本地计算机上的项目系统中的个人信息交换 (.pfx) 文件和强名称密钥 (.snk) 文件。
在某些情况下,您可能只具有对公钥的访问权限。 如果是这样,您可以使用“延迟签名”来推迟分配私钥。
可以使用**“项目设计器”的“签名”**页中的选项为程序集签名,如下所示;有关更多信息,请参见 “项目设计器”->“签名”页。
下面的步骤仅适用于为程序集签名。 如果希望为应用程序和部署清单签名,请参见 如何:对应用程序和部署清单进行签名。
使用新密钥文件对程序集进行签名
在项目节点在**“解决方案资源管理器”中处于选中状态下,从“项目”菜单中,单击“属性”(或在“解决方案资源管理器”中右击该项目节点,然后单击“属性”**)。
在**“项目设计器”中,单击“签名”**选项卡。
选中**“为程序集签名”**复选框。
指定一个新密钥文件。 在**“选择强名称密钥文件”下拉列表中,选择“<新建...>”**。 请注意,始终以 .pfx 格式创建新密钥文件。
将显示**“创建强名称密钥”**对话框。
在**“创建强名称密钥”对话框中,为新密钥文件输入名称和密码,然后单击“确定”**。
可以启用延迟签名。通过选择这些 仅延迟签名 复选框。 一个延迟签名的项目不会运行,因此,您不能对其进行调试。 但是,通过使用 -Vr 选项,的 Sn.exe(强名称工具) " 可以跳过验证在开发过程。
使用现有密钥文件为程序集签名
在项目节点在**“解决方案资源管理器”中处于选中状态下,从“项目”菜单中,单击“属性”(或在“解决方案资源管理器”中右击该项目节点,然后单击“属性”**)。
在**“项目设计器”中,单击“签名”**选项卡。
选中**“为程序集签名”**复选框。
指定一个现有密钥文件。 在**“选择强名称密钥文件”下拉列表中,选择“<浏览...>”**。
在**“选择文件”对话框中,导航到该密钥文件或在“文件名”框中输入其路径;然后单击“打开”**以选择它。 (有关更多信息,请参见 如何:创建公钥/私钥对。)
备注
可通过单击“更改密码”更改密钥文件的密码。在 更改密钥密码 对话框中,输入旧密码,然后输入新密码。
可以启用延迟签名。通过选择这些 仅延迟签名 复选框。 延迟签名的项目不会运行,因此,您不能对其进行调试。 但是,通过使用 -Vr 选项,的 Sn.exe(强名称工具) " 可以跳过验证在开发过程。