Estoy tratando de construir una comprensión general de lo que es común en esta situación para poder decidir si tiene sentido seguir adelante.
- ¿Son bienvenidos los instaladores en un entorno corporativo típico con lo siguiente?
- Proceso de control de cambios
- Dev / QA / entornos de producción
- Equipos de despliegue designados para diversas áreas (firewall, base de datos, ventanas, etc.).
- ¿Existe una "prueba de fuego" que podría aplicarse a una aplicación para ver si es un buen candidato para crear un instalador? * *
- ¿Son los instaladores lo suficientemente simples como para que cada aplicación tenga uno?
- ¿Los instaladores son incluso la herramienta adecuada?
- ¿Es razonable esperar que los desarrolladores aprendan algo como WiX para apoyar a los instaladores?
- La mantenibilidad en general es una preocupación, es decir, ¿crear un instalador es una habilidad de nicho?
* *
Por ejemplo, tengo un conjunto de aplicaciones winform que se encuentran en un directorio compartido en un servidor de producción. Grupos específicos pueden ejecutar las aplicaciones desde este directorio, pero solo los administradores del sistema pueden modificar los ejecutables. El proceso de implementación actual implica que un administrador copie / pegue los archivos ejecutables y las bibliotecas en el directorio compartido.
Dado que las aplicaciones no están instaladas en la máquina de los usuarios individuales, ¿tiene sentido crear un instalador para implementar nuevas versiones de estas aplicaciones en el directorio compartido?
Editar--
Sentí que las respuestas aquí daban algunos consejos sólidos, así que quería compartir lo que se me ocurrió para mi proyecto actual donde necesitaba construir una gran cantidad de aplicaciones e implementarlas en carpetas individuales.
Encontré un paquete NuGet llamado _PublishedApplications que imita el comportamiento de _PublishedWebsites para proyectos web. La idea es instalar el paquete NuGet en sus proyectos y agrega un destino que copiará los artefactos de compilación en un directorio _PublishedApplications en la ruta de salida. Este comportamiento se activa ejecutando MSBuild desde la línea de comando y especificando una outdir
propiedad:
msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln
Esto le dará una estructura de directorio similar a la siguiente:
- C: \ ruta \ a \ outdir
- _Aplicaciones publicadas \
- Proyecto 1\
dlls, exes, etc.
- Proyecto2 \
...
- Proyecto 1\
- _Aplicaciones publicadas \
A partir de ahí, crear un zip que se pueda extraer en los distintos entornos es bastante sencillo.
.msi
instalador? Esos, al menos, pueden ser completamente automatizados con un dolor mínimo. (sin dejar de ser comprensible para el usuario ocasional que necesita hacer sus propias actualizaciones)