我们绝大多数的业务用户运行Windows 7,我们的ClickOnce应用程序安装、更新和运行都是应该的,没有任何弹出警告。
在Windows 10上,同样的应用程序会弹出以下内容
当然,“更多的信息”似乎是文本的一部分,而不是您可以单击的“不要运行”,这似乎是唯一的选择
如果您确实单击了“更多信息”,它就会声明发布者是未知的(尽管它在更新时显示得很好!)
“代码签名证书”是有效的,它仍然在Win 7框上安装/更新并在没有警告的情况下运行。
他们现在有什么改变吗?
谢谢
发布于 2015-09-23 12:12:11
我假设您使用的是签名选项卡--但它只对setup.exe进行签名--而不是实际的application.exe文件。这样,在安装应用程序时,您不会得到“警告”提示,但在运行应用程序时,您会得到它。您需要分别对application.exe进行签名--而且在Visual中没有UI,您需要使用PostBuild任务:https://stackoverflow.com/a/18636102/1246870
我不知道为什么这在Windows 7中运行良好--在我的例子中,Win7也不起作用--但是根据您的评论,这可以是解决方案……
发布于 2015-09-23 21:56:45
非常感谢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和此链接的回答之间,在大量构建错误之后,我理解了这一点-- 本站提供了一些信息,但是将证书放置在一个完整的路径中,而不是相对的。
发布于 2021-03-30 23:22:53
为了任何在2021年面临这种情况的人的利益:
不要使用Comodo/Sectigo时间戳服务器。
当我切换到Digicert的服务器时,我的问题就消失了(使用"http://timestamp.digicert.com“代替时间戳服务器URL)。
或者,您可以将时间戳服务器保留为空白--但是如果没有加密时间戳,则当证书过期时,代码的签名将无效。(有了时间戳,只要创建时间戳时签名是有效的,签名就仍然有效。)
在Sectigo时间戳服务器总是使用SHA384而不是SHA1上有更多的细节。
https://stackoverflow.com/questions/32365144
复制相似问题