手动更新已签名的ClickOnce应用程序会抛出TrustNotGrantedException

时间:2019-01-08 15:13:39

标签: c# certificate clickonce code-signing-certificate symantec

我有一个ClickOnce部署,该部署由从Symantec获得的证书签名。开始安装后的安全警告提示将显示发布者名称。因此值得信赖。但是在致电

ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate()

我收到TrustNotGrantedException-用户拒绝向应用程序授予必需的权限。

如果将证书添加到计算机上的Trusted Publishers存储中,则不会引发异常,并且Symantec的CA也将添加到存储中。但是显然我无法将证书添加到使用该应用程序的客户的“受信任的发布者商店”中。

首先从光盘安装该应用程序,并在每次启动时检查一个在线更新URL。 并且,如果以后我从Trusted Publishers商店中删除证书,则再次尝试手动更新仍然有效。这些信息还会存储在其他地方吗?

如果我不签署发布的ClickOnce应用程序,则手动更新有效。 如果我使用由makecert制作的自签名证书签署发布的ClickOnce应用程序,则手动更新有效。 那么证书可能存在问题?

如何确定是否存在证书问题,下一步该怎么做?

1 个答案:

答案 0 :(得分:0)

我们现在正在使用InPlaceHostingManager Class。它是用于安装或更新ClickOnce部署的。 GetManifestAsync()触发GetManifestCompleted事件,为您提供版本号。然后,您可以调用DownloadApplicationAsync()并处理DownloadApplicationCompleted事件。到目前为止,此方法有效,并且不会引发TrustNotGrantedException。