2011-01-31 2 views
3

J'ai une application ClickOnce Windows Forms qui effectue ses propres mises à jour d'application. Cela a fonctionné très bien depuis plusieurs années, cependant, un déploiement récent est produit l'exception suivante:L'application ClickOnce Windows Forms lève une exception lors d'une tentative de mise à jour via CheckForDetailedUpdate()

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) 

Mes tentatives pour rechercher l'erreur révèle qu'il est peut-être en raison d'un certificat expiré, .pfx. Cependant, j'ai généré un certificat avec une date d'expiration longue. J'ai fait un diff dans Git sur le .pfx et l'application .csproj du déploiement précédent et ne voit aucune différence réelle. Que pourrait-il se passer ici?

Répondre

1

Mes excuses, j'ai trouvé une différence dans le fichier .csproj Je n'ai pas attrapé avant:

<PlatformTarget>x86</ PlatformTarget> 

Cela semble avoir fixé lors du changement de anycpu pour l'application.

Questions connexes