- Ho creato un Installhelper.cs che è ereditato dal programma di installazione.
- Sostituire il metodo Install() utilizzando questo pezzo di codice (A).
Questi valori che vengono inseriti al app.config non sono disponibili nel [projectName] exe.config file di che viene creato dopo l'installazione. Ho già aggiunto una sezione come mostrato nell'app.config manualmente (B)Come scrivere in app.config nel progetto di installazione e usarlo nel programma
i dati vengono passati alla classe di installazione ma i dati non vengono scritti nei campi app.config. Rimangono uguali nel file di configurazione creato durante l'installazione.
Qualsiasi aiuto è molto apprezzato. Ho passato quasi un giorno a questo.
Codice A:
[RunInstaller(true)]
public partial class Installation : System.Configuration.Install.Installer
{
public Installation()
{
InitializeComponent();
}
public override void Install(IDictionary stateSaver)
{
//base.Install(stateSaver);
try
{
// In order to get the value from the textBox named 'EDITA1' I needed to add the line:
// '/PathValue = [EDITA1]' to the CustomActionData property of the CustomAction We added.
string userName = Context.Parameters["userName"];
string password = Context.Parameters["password"];
string folderPath = Context.Parameters["path"];
MessageBox.Show(userName);
MessageBox.Show(password);
MessageBox.Show(folderPath);
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//config.AppSettings.Settings.Add("userName", userName);
//config.AppSettings.Settings.Add("password", password);
//config.AppSettings.Settings.Add("foderPath", folderPath);
config.AppSettings.Settings["userName"].Value = userName;
config.AppSettings.Settings["password"].Value = password;
config.AppSettings.Settings["foderPath"].Value = folderPath;
config.Save(ConfigurationSaveMode.Full);
ConfigurationManager.RefreshSection("appSettings");
}
catch (FormatException e)
{
string s = e.Message;
throw e;
}
}
}
Aggiunta la sezione nella configurazione applicazione è Codice B:
<appSettings>
<add key="userName" value="" />
<add key="password" value="" />
<add key="foderPath" value="" />
</appSettings>
Grazie kleopatra per la modifica. :) – Jasmeet