已签名的ClickOnce应用程序使用Windows 10

时间:2015-09-03 00:15:34

标签: visual-studio clickonce

我们的绝大多数业务用户都运行Windows 7,我们的ClickOnce应用程序安装,更新和运行应该没有任何弹出警告。

相同的应用程序在Windows 10上抛出以下内容

Warning number one

Unknown Publisher

当然,“更多信息”似乎是文字的一部分,而不是您点击“不要运行”似乎是唯一的选项

如果你点击“更多信息”,它会说明发布者是未知的(虽然它在更新时显示得很好!!!)

代码签名证书有效,它仍会安装/更新并在Win 7盒子上运行而不会发出警告。

现在有什么想法改变了吗?

由于

enter image description here

4 个答案:

答案 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="&quot;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe&quot; sign /f &quot;MyCert_2016.pfx&quot; /p &quot;MySecretPassword&quot; /t http://timestamp.comodoca.com/authenticode &quot;C:\Users\MyName\My Documents\Visual Studio 2015\Projects\MyProject\MyProject\obj\Release\My.exe&quot;" />

然后重新加载项目 - 已发布,现在它在Windows 10上运行,没有任何异议 - 就像从蓝色警告到红色警告一样: - (

Red Warning

在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...