我们的绝大多数业务用户都运行Windows 7,我们的ClickOnce应用程序安装,更新和运行应该没有任何弹出警告。
相同的应用程序在Windows 10上抛出以下内容
当然,“更多信息”似乎是文字的一部分,而不是您点击“不要运行”似乎是唯一的选项
如果你点击“更多信息”,它会说明发布者是未知的(虽然它在更新时显示得很好!!!)
代码签名证书有效,它仍会安装/更新并在Win 7盒子上运行而不会发出警告。
现在有什么想法改变了吗?
由于
答案 0 :(得分:1)
我假设您正在使用“签名”选项卡 - 但它只签署setup.exe - 而不是实际的application.exe文件。这样你就不会得到警告"安装应用程序时提示,但是在运行它时会得到它。您需要单独签署application.exe - 并且在Visual Studio中没有用户界面,您需要使用PostBuild任务:https://stackoverflow.com/a/18636102/1246870
我不确定为什么这在Windows 7中运行正常 - 在我的情况下Win7运行不正常 - 但根据您的评论,这可能是解决方案......
答案 1 :(得分:0)
非常感谢avs099 - 已经标记为答案,因为它让我最接近目前为止!我最终使用了BeforePublish ..
使用IE11我将证书导出到目录(Internet选项>内容>证书>导出),然后将其复制并粘贴到项目中。然后卸载项目并在
之间添加以下内容<Target Name="BeforePublish">
</Target>
标签
<Exec Command=""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe" sign /f "MyCert_2016.pfx" /p "MySecretPassword" /t http://timestamp.comodoca.com/authenticode "C:\Users\MyName\My Documents\Visual Studio 2015\Projects\MyProject\MyProject\obj\Release\My.exe"" />
然后重新加载项目 - 已发布,现在它在Windows 10上运行,没有任何异议 - 就像从蓝色警告到红色警告一样: - (
在avs099和this link的回答之间我在经过大量构建错误之后理解了它 - this site提供了信息,但是将证书放在完整路径中,而不是相对的
答案 2 :(得分:0)
为了 2021 年面临此问题的所有人的利益:
不要使用 Comodo/Sectigo 时间戳服务器。
当我切换到 Digicert 的服务器时,我的问题就消失了(使用“http://timestamp.digicert.com”代替时间戳服务器 URL)。
或者,您可以将时间戳服务器留空——但如果没有加密时间戳,您的代码签名将在证书到期时无效。 (使用时间戳,只要在创建时间戳时签名有效,签名就会保持有效。)
更多详情请访问 Sectigo timestamp server always using SHA384 instead of SHA1。
答案 3 :(得分:0)
我看到您正在使用 sha1 证书和 sha1 is deprecated,因为 these reasons。如果您有 sha256 证书,则可以使用“http://timestamp.comodoca.com/?td=sha256”。见more info...