2009-04-22 6 views
2

Ich habe eine Anwendung, die mit ClickOnce bereitgestellt wird, und verfügt über eine Option zum automatischen Starten mit Windows. Wenn ich Windows neu starte, startet meine Anwendung jedoch erfolgreich, ist jedoch nicht in der Lage, die Einstellungen zu finden (ich verwende nur die integrierte Einstellungsfunktion). Wenn ich jedoch die automatisch gestartete App schließe und sie mit dem Symbol auf dem Desktop neu starte, kann sie ihre Einstellungen finden.ClickOnce Anwendung erinnert sich nicht Einstellungen beim automatischen Starten mit Windows

Um automatisch mit Windows gestartet werden, ich bin mit dem 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"); 

bemerkte ich, dass die Desktop-Verknüpfung zu einer exe nicht direkt zeigen, sondern eine URL wie:

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

Wie kann ich meine Auto-Start-App auf die gleiche Weise wie die Verknüpfung funktioniert?

Antwort

2

Sie haben keine Kontrolle darüber, wo eine ClickOnce-App installiert wird, und sie wird bei jeder Aktualisierung verschoben. Daher werden keine Einstellungen gespeichert, die sich in der Datei app.config ändern können. Stattdessen erstelle ich meine eigene Einstellungsdatei (normalerweise mit einem einfachen serialisierten XML-Objekt) in einen "bekannten" Ordner, wie zum Beispiel Environment.SpecialFolder.CommonApplicationData oder Environment.SpecialFolder.LocalApplicationData

+0

Ich sollte auch erwähnen, dass ich mit dem "offline" bereitstellen "Installationsmodus. Sie sind möglicherweise darauf beschränkt, wo Sie schreiben können, wenn Sie den Modus "nur online" verwendet haben. –