Domanda

In un progetto di servizio Windows, con un installer progetto ho provato quanto segue:

[RunInstaller(true)]
public partial class ProjectInstaller : Installer
{
    public ProjectInstaller()
    {
        InitializeComponent();
    }

    protected override void OnBeforeInstall(System.Collections.IDictionary savedState)
    {
        base.OnBeforeInstall(savedState);
        Settings.Default.ASetting = "aValue";
        Settings.Default.Save();
    }

    protected override void OnAfterInstall(System.Collections.IDictionary savedState)
    {
        base.OnAfterInstall(savedState);
        Settings.Default.ASetting = "aValue";
        Settings.Default.Save();
    }
}

Ma dopo l'installazione quando controllo il file .config, un valore più vecchio è ancora lì. Non c'era file .config nel solito [cartellautente] \ AppData \ Local

Per me è importante definire questa variabile nel tempo di installazione da quando riceverò il suo valore da un input dell'utente nel progetto di installazione. Il valore costante qui viene utilizzato solo a scopo di test.

È stato utile?

Soluzione

Il quadro non vi permetterà di modificare le impostazioni durante l'installazione, in quanto impostazioni dell'applicazione sono di sola lettura e non v'è alcun contesto utente fino a quando il servizio è installato e funzionante (sotto un nome utente).

L'unica soluzione che ho trovato è quello di cambiare le impostazioni utilizzando la manipolazione XML pianura del file di configurazione. Sovrascrivo Installa metodo e apportare modifiche al file stesso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top