visual studio net example connectionstring conexion cadena app .net deployment configuration-files

.net - net - web config transform visual studio 2017



Inicializando user.config o app.exe.config durante la instalaciĆ³n (3)

Sé que esa no es exactamente la respuesta que está buscando, pero debería optar por un instalador más "serio". Estamos usando Advanced Installer y es una maravilla, hace todo lo que se te ocurra.

Estoy desarrollando una aplicación .NET WinForms que se basa en user.config para almacenar varias configuraciones útiles, como las URL del servicio web de intranet. Nos gustaría hacer posible la importación de configuraciones iniciales personalizadas como parte de la instalación. El caso de uso para esto es si una empresa tiene 100 máquinas en las que desean instalar el software, y todas deben tener una referencia al servicio web de intranet en cuestión, esto no debería ser necesario configurarlo manualmente en todas las máquinas.

Actualmente estamos utilizando un proyecto de instalación VS2008 para generar el paquete de instalación.

Nuestra idea hasta ahora ha sido permitir al instalador crear un archivo .config inicial personalizado con la información (desde una plantilla), y luego ponerlo en su lugar en lugar del archivo predeterminado que instala el proyecto de instalación.

Sin embargo, no puedo ver una manera de hacer esto aparte de estos pocos:

  1. Hardcode el nombre del ejecutable en una acción de instalador personalizada (derivada de System.Configuration.Install.Installer), para usar la clase ConfigurationManager para determinar la ruta del archivo .config. Esto requeriría cambios manuales en el instalador si el nombre del ejecutable cambia.
  2. Haga rodar nuestras propias clases de configuración o jerarquía de archivos / carpetas para almacenar las configuraciones. Esto básicamente nos excluiría de las ventajas del mecanismo de aislamiento (que también es el obstáculo aquí) que proporciona .NET, si entiendo correctamente.

¿Alguien sabe de alguna alternativa, o de las formas de hacer que las dos anteriores sean apetecibles?

Me temo que la respuesta puede ser "no hagas esto, derrota el espíritu del mecanismo, transfiere tu propio mecanismo de importación de configuraciones".


Si es aceptable que codifique al menos una configuración en el archivo de configuración, puede usar esto para apuntar a una base de datos o servicio web o ruta de archivo de red donde se pueden almacenar todas las configuraciones de configuración personalizadas. Con System.Configuration.ConfigurationManager.OpenExeConfiguration (), puede actualizar el archivo de configuración desde esta ubicación, ya sea en la primera ejecución o cada vez que se inicia la aplicación.


Si crea esta aplicación para compañías más grandes, entonces debería echarle un vistazo a la Política de grupo . Lamentablemente, devolverá su aplicación a la edad de oro del registro. Entiendo que esto sería un gran cambio en su programa, pero este es el camino a seguir.

Sin embargo, si la URL del servicio web es la única, debe configurarlo de esta manera, entonces el GPO puede ser una exageración. En ese caso, codificaría el nombre del ejecutable.