2 Stimmen

ClickOnce-Anwendung merkt sich die Einstellungen nicht, wenn sie automatisch mit Windows gestartet wird

Ich habe eine Anwendung, die mit ClickOnce bereitgestellt wird und eine Option zum automatischen Starten mit Windows hat. Wenn ich jedoch Windows neu starte, wird meine Anwendung erfolgreich gestartet, kann aber die Einstellungen nicht finden (ich verwende nur die integrierte Einstellungsfunktion). Wenn ich jedoch die automatisch gestartete Anwendung schließe und sie über das Symbol auf dem Desktop neu starte, kann sie ihre Einstellungen finden.

Um automatisch mit Windows zu starten, verwende ich den folgenden Code:

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (runOnStartup == true) 
    key.SetValue("AppName", Application.ExecutablePath.ToString());
else 
    key.DeleteValue("AppName");

Mir ist aufgefallen, dass die Desktop-Verknüpfung nicht direkt auf eine Exe verweist, sondern eher auf eine URL wie:

http://pathToApp.application#AppName.application, Culture=neutral, PublicKeyToken=c8c0a22ba65cb9f4, processorArchitecture=x86

Wie kann ich meine Autostart-Anwendung so einstellen, dass sie genauso funktioniert wie die Verknüpfung?

2voto

Jim Harte Punkte 2573

Sie haben keine Kontrolle darüber, wo eine ClickOnce-Anwendung installiert wird, und sie wird jedes Mal, wenn sie aktualisiert wird, verschoben, daher speichere ich keine Einstellungen, die sich in der app.config-Datei ändern können. Stattdessen erstelle ich meine eigene Einstellungsdatei (in der Regel mit einem einfachen serialisierten xml-Objekt) in einem "bekannten" Ordner, wie Environment.SpecialFolder.CommonApplicationData oder Environment.SpecialFolder.LocalApplicationData

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X