Unser Code-Signing-Zertifikat ist kürzlich abgelaufen, also habe ich es erneuert und gerade unsere erste Version veröffentlicht, die das neue Zertifikat verwendet. Leider verliert jeder Kunde, der das Upgrade installiert, die anwendungsspezifischen Anwendungseinstellungen und die Standardwerte werden zurückgesetzt. Ich bin mir ziemlich sicher, dass andere Upgrades immer die Benutzereinstellungen von der vorherigen Version kopiert haben, also würde ich vermuten, dass es ein Problem mit dem neuen Zertifikat gibt. Wir verwenden ein erworbenes Zertifikat, kein Testzertifikat. Unsere Anwendung ist eine WinForms-Anwendung, die auf .NET 3.5 abzielt. Die Zertifizierungsstelle scheint in den drei Jahren seit dem Kauf des ersten Zertifikats den Besitzer gewechselt zu haben, so dass die Emittentenfelder unterschiedlich sind.Benutzereinstellungen, die während des ClickOnce-Upgrades verloren gegangen sind, nachdem ich unser Codesignaturzertifikat erneuert
Gibt es eine Möglichkeit, die Benutzereinstellungen bei der Erneuerung eines Codesignaturzertifikats nicht zu verlieren?
Danke für die Vorschläge. Ich spreche über benutzerspezifische Anwendungseinstellungen, also habe ich das in der Frage geklärt. Ich habe das Feld Betreff in den alten und neuen Zertifikaten überprüft, und es gibt keine Änderung. Das Feld Betreffschlüssel-ID stimmt jedoch nicht überein. Die beiden Zertifikate stammen von verschiedenen Behörden, daher generieren sie die Kennungen möglicherweise anders. –
Geänderte Betreff-Schlüssel-ID ist kein Problem. Dies wird sich voraussichtlich ändern. Sie haben eine gewisse Kontrolle über das Upgrade der Benutzereinstellungen. Erstellen Sie eine Klasse für Anwendungseinstellungen, überschreiben Sie 'ApplicationSettingsBase.Upgrade' und rufen Sie' ApplicationSettingsBase.GetPreviousVersion' daraus auf. Siehst du die alten Benutzereinstellungen auf diese Weise? Wenn dies der Fall ist, werden Sie von keinem der Fehler, die Sie derzeit fürchten, betroffen sein (.NET hält dies für die gleiche Anwendung, Glück für Sie). –
Glücklicherweise für mich. Wie Sie vorgeschlagen haben, konnte ich Einstellungen aus der vorherigen Version sehen, als ich 'GetPreviousVersion()' aufgerufen habe. Ich musste 'Upgrade()' nicht einmal überschreiben, es funktioniert, wenn ich es explizit anrufe. Ich frage mich, warum die ClickOnce-Bereitstellung "Upgrade()" nicht ordnungsgemäß aufruft. –