我有一个使用Windows Forms的ClickOnce应用程序,它可以执行自己的应用程序更新。这个功能已经运行了几年,但最近的部署出现以下异常:
Message: Object reference not set to an instance of an object.
Source: System.Deployment
Target Site: System.Security.Policy.ApplicationTrust RequestTrust(System.Deployment.Application.SubscriptionState, Boolean, Boolean, System.ActivationContext, System.Security.Policy.TrustManagerContext)
Stack Trace: at System.Deployment.Application.ApplicationTrust.RequestTrust(SubscriptionState subState, Boolean isShellVisible, Boolean isUpdate, ActivationContext actCtx, TrustManagerContext tmc)
at System.Deployment.Application.DeploymentManager.DetermineTrustCore(Boolean blocking, TrustParams tp)
at System.Deployment.Application.DeploymentManager.DetermineTrust(TrustParams trustParams)
at System.Deployment.Application.ApplicationDeployment.CheckForDetailedUpdate(Boolean persistUpdateCheckResult)
at System.Deployment.Application.ApplicationDeployment.CheckForDetailedUpdate()
at SCANit.Inventory.ClickOnce.CheckForDetailedUpdate()
at SCANit.Inventory.AppUpdaterService.StatusOfUpdate(Boolean notify)
at SCANit.Inventory.AppUpdaterService.PerformAppUpdate()
at SCANitApp.MainApplication.updateMenuItem_ItemClick(Object sender, ItemClickEventArgs e)
我的尝试搜索错误显示可能是由于一个过期的证书,.pfx。然而,我生成了一个有效期很长的证书。我在上一次部署的 .pfx 和应用程序的 .csproj 中使用Git进行了比较,没有发现实质性的差异。这里可能发生了什么?