2009-06-02 7 views
10

Tengo un programa A, también tengo un archivo app.config donde he agregado algunas claves como la dirección del servidor, el nombre de usuario y la contraseña para conectarme a un servidor. Es una aplicación de consola. Ahora quiero hacer una interfaz de usuario que he hecho. En esa interfaz de usuario, deseo modificar el contenido de la aplicación.config del programa A. ¿Cómo puedo hacer eso?Abra los archivos de configuración de otro programa

Esto es lo que probé, copié la UI (básicamente un .exe) al directorio A de, donde también reside app.config. Luego, en la interfaz de usuario, utilizo el método OpenExeConfiguration la clase de ConfigurationManager, y pasando nombre de archivo del programa de A como un argumento. Pero arroja una excepción de tipo System.Configuration.ConfigurationErrorsException.

Así que creo que mi enfoque es incorrecto. ¿Cómo voy a hacer esto?

EDIT: Ah me olvidaba decirte que estoy usando C#, .NET 3.5 y VS 2008 (si eso ayuda: D)

+0

¿Puede agregar un ejemplo de código de la llamada a OpenExeConfiguration y más detalles sobre la excepción? –

Respuesta

14

no estoy seguro sobre el problema con el enfoque (trate de añadir el seguimiento de la pila a su publicación) pero así es como lo hago:

var configMap = 
    new ExeConfigurationFileMap 
    { 
     ExeConfigFilename = externalConfigurationFile 
    }; 
System.Configuration.Configuration externalConfiguration = 
    ConfigurationManager.OpenMappedExeConfiguration(
     configMap, 
     ConfigurationUserLevel.None); 

foreach (var setting in externalConfiguration.AppSettings.Settings) 
{ 
    ... 
} 

externalConfiguration.Save(ConfigurationSaveMode.Full); 
+1

Creo que la última línea debe ser configuración externa.Guardar en lugar de la configuración actual.Guardar –

+0

Eso es genial, gracias. –

Cuestiones relacionadas