2008-11-14 12 views
36

Uso el archivo app.config para almacenar algunos valores (ruta a una base de datos de mapeo, selecciones de conexión de datos). Estas configuraciones difieren en las máquinas del usuario y me gustaría que el instalador las configure correctamente. ¿Hay un instalador que pueda trabajar con los archivos de configuración .NET durante la configuración y me permita crear algunos cuadros de diálogo que me ayuden a completar estos valores?¿Cómo modificar archivos de configuración .NET durante la instalación?

Sé que esta pregunta puede ser similar a: Initializing user.config or app.exe.config during install, pero no estoy limitado al proyecto de configuración de VS 2008 y quiero cambiar la configuración en los archivos de configuración.

EDIT: Veo que usar WIX es una opción, pero tengo ganas de romper una nuez con un mazo. Puede ser la única solución, pero todavía espero algo simple.

Respuesta

55

Usamos WIX para cambiar el archivo de configuración de la aplicación. Funciona muy bien, deberá agregar wixUtilExtension.dll en la referencia.

muestra WIX:

<Component Id="ChangeConfig" Guid="[YOUR_GUID_HERE]"> 
    <File Id="App.config" Name="MyApplication.exe.config" Vital="yes" KeyPath="yes" Source="[Path to project dir]\app.config" /> 
    <util:XmlFile Id="AppConfigSetConnStr" Action="setValue" Permanent="yes" File="[#App.config]"    
     ElementPath="/configuration/connectionStrings/add[\[]@name='MyDatabaseName'[\]]" Name="connectionString" 
     Value="Your Connection string values here" /> 

</Component> 

En realidad, depende de lo que usted está utilizando para crear el instalador, ¿Qué estás usando?
Tienen alook en el WIX Tutorial.

+0

Gracias. Todavía estoy intimidado por las características y la complejidad de WIX. Estoy un poco frustrado por seguir esa ruta aún por algo tan simple :) –

+13

Solo por completitud; Si está haciendo esto en VS, necesita cambiar la etiqueta en la parte superior del Fragmento para incluir un atributo: xmlns: util = "http://schemas.microsoft.com/wix/UtilExtension. También necesita agregue una referencia a WixUtilExtension. –

+2

Eso es lo que quise decir diciendo que agrega la referencia a wixUtilExtension.dll en la referencia. Sí, tiene que hacer lo que menciona. – CheGueVerra

1

He utilizado el conjunto de herramientas WIX para producir un msi. La herramienta le permite especificar de manera declarativa los cambios a archivos XML como app.config durante la instalación. El problema es que hay una curva de aprendizaje significativa. Buscar sourceforge para wix.

+0

que estaba esperando una solución más ligera para medianas/proyectos pequeños ... :) –

1

Utilicé NSIS con un complemento XML para hacer esto.

3

Si está utilizando un proyecto de configuración VS, ¿ha creado una acción personalizada? Los he usado para todo, desde introducir valores XML hasta desplegar bases de datos.

+0

Los proyectos de configuración de VS no son nada que yo recomiende. resucitados, pero aún no se admiten en escenarios de CI y se basan en tecnologías de la era VS2005 y nunca se actualizaron con el soporte adecuado de MsBuild. – jessehouwing

+1

@jessehouwing Considerando que esta respuesta tiene 7,5 años, la tecnología ha cambiado bastante. – GalacticCowboy

Cuestiones relacionadas