Wir haben eine winforms-clickonce-Anwendung in C #, die volle Vertrauenswürdigkeit erhält und mit einem gültigen Zertifikat signiert ist.
Die Anwendung läuft einwandfrei und wird unter Windows XP, Windows 7 korrekt aktualisiert. Auf einem Windows 8-Computer wird sie jedoch nicht aktualisiert. Die Anwendung wird jedoch ordnungsgemäß ausgeführt. Die erste Aktualisierungsanforderung für den Wechsel zu einer späteren Version schlägt jedoch fehl mit: System.Deployment.Application.TrustNotGrantedException
Der Code ist fehlgeschlagen, nachdem der Aufruf von ApplicationDeployment::CheckForDetailedUpdate()
fehlgeschlagen ist. Ich frage mich, warum dies passieren könnte, da derselbe Code in allen früheren Versionen von Windows einwandfrei funktioniert. Jede Hilfe wird geschätzt. Unten ist der relevante Stack-Trace:
Das einzige Mal, dass ich diesen Stack-Trace gesehen habe, war, als ich versucht habe, CheckForDetailedUpdate()
aufzurufen, ohne zuvor die explizite Vertrauensstellung eingerichtet zu haben. Nach dem Hinzufügen des unten stehenden Codes funktionierte der Update-Check.
Von dieser MSDN-Seite Es gibt zwei Ursachen. Aber es scheint, dass TrustNotGrantedException
normalerweise ausgelöst wird, wenn ein neues ClickOnce-Update bereitgestellt wird, das mehr Berechtigungen als die vorherige Version verwendet ...
- Die Anwendung verwendet die Berechtigungserhöhung, und der Benutzer verweigert die Anforderung für erhöhte Vertrauenswürdigkeit. oder
- Die Anwendung verwendet die Trusted Application Deployment und das digitale Zertifikat, das zum Signieren der Anwendung verwendet wird, ist nicht als vertrauenswürdiger Herausgeber auf dem lokalen Computer aufgeführt. Wenn Sie ein Update für eine Anwendung bereitgestellt haben und das Update mehr Berechtigungen als die vorherige Version verwendet und ClickOnce eine TrustNotGrantedException auslöst, wird die neue Version nicht installiert .
Es ist also sinnvoll, dass die Aktualisierung fehlschlägt, da sich die Sicherheitsstufe der Apps geändert hat, seit der Benutzer sie zuletzt installiert hat. Sie müssen sie daher neu installieren.
Tags und Links .net c# winforms visual-studio clickonce