Come faccio a modificare una delle impostazioni di .NET application / utente per l'installazione?
-
22-09-2019 - |
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.
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.