文件“<file>”未被签名

更新:2007 年 11 月

错误消息

文件“<file>”没有签名。部署项目包含已被否决的签名属性。有关更多信息,请参见帮助。

Visual Studio 2003 及早期版本中提供的签名功能已从安装和部署项目中(“安装”项目、“Web 安装”项目、“Cab”项目和“合并模块”)移除。如果已将启用了签名的 Visual Studio 2003 项目导入到 Visual Studio 2005 中,或者要为部署项目启用签名,您需要使用 Windows Platform SDK 中的程序集签名工具 Signtool.exe 在生成后事件中对生成输出中的文件签名。有关更多信息,请参见签名工具 (SignTool.exe)

简单情况下,没有松散文件,只有引导性应用程序 (setup.exe) 和/或生成输出的包文件(Windows Installer 包、.cab 文件或合并模块)。这种情况下,您需要在生成后事件对话框中调用 Signtool.exe。

复杂情况下,组成部署的文件可能是松散文件,即除了引导性应用程序和 Windows Installer 包外,生成输出中还有其他文件。您常常需要对这些额外的松散文件进行签名,并使用每个签名的组件的哈希代码更新 Windows Installer 包。这必须在一个生成后事件中进行,该事件运行脚本以执行以下操作:

  1. 循环访问生成输出路径中的松散文件和 CAB 文件集,并使用 Signtool.exe 对它们进行签名。

  2. 在 Windows Installer 包中,更新已签名的每个文件的哈希代码。

  3. 对引导性应用程序进行签名并使用 Signtool.exe 对 Windows Installer 包进行签名。

更正简单情况中的此错误

  • 在生成后事件对话框中调用 Signtool.exe。

    <SDK 安装目录>Signtool sign –f "filename.pfx" –p "password" $(BuiltOuputPath)\Setup2.msi

    <SDK 安装目录>Signtool sign –f "filename.pfx" –p "password" $(BuiltOuputPath)\setup.exe

如果您的证书存储在 .pvk 和 .spc 文件中,则可以使用 Windows Platform SDK 工具 pvk2pfx.exe 将这些文件的格式转换为 .pfx。

请参见

参考

“部署项目属性”对话框 ->“配置属性”->“生成”

签名工具 (SignTool.exe)