手动更新已签名的 ClickOnce 应用程序会引发 TrustNotGrantedException
Posted
技术标签:
【中文标题】手动更新已签名的 ClickOnce 应用程序会引发 TrustNotGrantedException【英文标题】:Manual update for signed ClickOnce app throws TrustNotGrantedException 【发布时间】:2019-01-08 15:13:38 【问题描述】:我有一个 ClickOnce 部署,它由从 Symantec 获得的证书签名。启动设置后的安全警告提示显示发布者名称。所以是值得信赖的。但是打电话的时候
ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate()
我收到 TrustNotGrantedException - 用户拒绝授予应用程序所需的权限。
如果我将我的证书添加到我机器上的 Trusted Publishers Store,则不会引发异常,并且赛门铁克的 CA 也会添加到存储中。但显然我无法将证书添加到使用该应用程序的客户的 Trusted Publishers Store。
该应用程序首先从光盘安装,每次启动时都会检查在线更新网址。 如果我之后从 Trusted Publishers Store 中删除证书,如果我再次尝试手动更新仍然有效。这些信息是否也存储在其他地方?
如果我不签署已发布的 ClickOnce 应用程序,则手动更新有效。 如果我使用使用 makecert 制作的自签名证书对已发布的 ClickOnce 应用程序进行签名,则手动更新将起作用。 那么证书可能有问题?
如何确定是否存在证书问题以及接下来应该执行哪些步骤?
【问题讨论】:
【参考方案1】:我们现在使用InPlaceHostingManager Class。它用于安装或更新 ClickOnce 部署。 GetManifestAsync()
触发 GetManifestCompleted
事件,它会为您提供版本号。然后您可以调用DownloadApplicationAsync()
并处理DownloadApplicationCompleted
事件。到目前为止,这是可行的,并且没有抛出 TrustNotGrantedException。
【讨论】:
以上是关于手动更新已签名的 ClickOnce 应用程序会引发 TrustNotGrantedException的主要内容,如果未能解决你的问题,请参考以下文章