- He creado un Installhelper.cs que está insertado desde el instalador.
- Reemplace el método Install() utilizando este fragmento de código (A).
Estos valores que se insertan en el app.config no están disponibles en el archivo [Proyecto] exe.config que se crea después de la instalación. Ya he agregado una sección como se muestra a continuación en la app.config manualmente (B)Cómo escribir en app.config en el proyecto de instalación y usarlo en el programa
los datos se pasan a la clase de instalador pero los datos no se escriben en los campos de app.config. Permanecen iguales en el archivo de configuración creado durante la instalación.
Cualquier ayuda es muy apreciada. He pasado casi un día en esto.
Código 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;
}
}
}
sección Agregado en la configuración de aplicaciones es Código B:
<appSettings>
<add key="userName" value="" />
<add key="password" value="" />
<add key="foderPath" value="" />
</appSettings>
Gracias kleopatra por la edición. :) – Jasmeet