首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有签名的ClickOnce应用程序用Windows 10抛出“未知发行者”

有签名的ClickOnce应用程序用Windows 10抛出“未知发行者”
EN

Stack Overflow用户
提问于 2015-09-03 00:15:33
回答 5查看 4.7K关注 0票数 4

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

在Windows 10上,同样的应用程序会弹出以下内容

当然,“更多的信息”似乎是文本的一部分,而不是您可以单击的“不要运行”,这似乎是唯一的选择

如果您确实单击了“更多信息”,它就会声明发布者是未知的(尽管它在更新时显示得很好!)

“代码签名证书”是有效的,它仍然在Win 7框上安装/更新并在没有警告的情况下运行。

他们现在有什么改变吗?

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-09-23 12:12:11

我假设您使用的是签名选项卡--但它只对setup.exe进行签名--而不是实际的application.exe文件。这样,在安装应用程序时,您不会得到“警告”提示,但在运行应用程序时,您会得到它。您需要分别对application.exe进行签名--而且在Visual中没有UI,您需要使用PostBuild任务:https://stackoverflow.com/a/18636102/1246870

我不知道为什么这在Windows 7中运行良好--在我的例子中,Win7也不起作用--但是根据您的评论,这可以是解决方案……

票数 1
EN

Stack Overflow用户

发布于 2015-09-23 21:56:45

非常感谢avs099 --把它标记为答案,因为它使我得到了迄今为止最接近的答案!最后我使用了BeforePublish..。

使用IE11,我将证书导出到一个目录( Internet选项>内容>证书>导出),然后将其复制并粘贴到项目中。然后卸载项目,并在

代码语言:javascript
复制
<Target Name="BeforePublish">
</Target>

标签

代码语言:javascript
复制
<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上运行,没有任何异议--就像它从蓝色警告变为红色警告一样:

在avs099和此链接的回答之间,在大量构建错误之后,我理解了这一点-- 本站提供了一些信息,但是将证书放置在一个完整的路径中,而不是相对的。

票数 0
EN

Stack Overflow用户

发布于 2021-03-30 23:22:53

为了任何在2021年面临这种情况的人的利益:

不要使用Comodo/Sectigo时间戳服务器。

当我切换到Digicert的服务器时,我的问题就消失了(使用"http://timestamp.digicert.com“代替时间戳服务器URL)。

或者,您可以将时间戳服务器保留为空白--但是如果没有加密时间戳,则当证书过期时,代码的签名将无效。(有了时间戳,只要创建时间戳时签名是有效的,签名就仍然有效。)

Sectigo时间戳服务器总是使用SHA384而不是SHA1上有更多的细节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32365144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档