好吧,我做的不对,我需要一些帮助。这是正在发生的事情:
- 我有一张来自Comodo的“真正的”Authenticode 证书,我已经支付了费用。
- 我正在尝试签署和部署用 Visual Studio 2012 和 .NET 4.5 编写的 WPF 应用程序。
- 在项目的属性中,我检查了“签署 ClickOnce 清单”并选择了我的证书。
- 我也在使用 Comodo 的时间戳服务器(http://timestamp.comodoca.com/authenticode)
- 在“发布”选项卡和“先决条件”按钮下,我已选中“创建安装程序以安装必备组件”。
当我构建和发布时,一切正常!setup.exe 使用我的 Comodo 证书签名,这很好。此外,该.application
文件使用 Comodo 证书签名,并且我的公司名称显示为发布者——这也很好。
问题来了:一旦将应用程序下载到客户端,Windows 8 就会发出关于不受信任程序 (MyProgram.exe) 的警告,并且发布者不是我的公司名称。因此,除了实际的可执行文件外,所有内容都已签名。
我尝试在 obj\Release\MyProgram.exe 上添加使用 signtool.exe 的构建后脚本,但是当我尝试安装应用程序时,我收到一个清单错误,指出哈希值不匹配。换句话说,清单是在构建后事件之前生成的。
如何签署我的 .exe 并维护 ClickOnce 清单的完整性?有没有一种简单的方法可以做到这一点,或者我必须手动在每个文件上使用 mage.exe(我希望不是)?