2012-01-20 14 views
7

¿Alguien ha usado WiX para generar un instalador para un sitio web ASP.Net MVC? ¿Cosecha archivos del proyecto web? No puedo encontrar buenos ejemplos de esto. No parece haber una manera documentada de incluir todos los archivos correctos, solo los archivos correctos y colocarlos en el lugar correcto.Uso de WiX para generar un instalador para un sitio web ASP.Net MVC

Si se agrega el proyecto de sitio web como una referencia en el proyecto de instalación, y establecer harvest=True en las propiedades, a continuación, todos los archivos del sitio web son capturados, pero hay cuestiones:

  • algunos archivos que no deberían estar copiados están incluidos, por ejemplo packages.config, Web.Debug.config No parece haber una manera clara o sencilla de excluirlos (as per this discussion).
  • El archivo DLL .website está en el lugar equivocado, en la raíz en lugar de la carpeta bin (as per this discussion)

Sin embargo, si no se utiliza la cosecha, que tiene una gran cantidad de archivos para hacer referencia de forma manual (por ejemplo, Debajo de \Content\ solo tengo 58 archivos en 5 carpetas. La mayoría es jQuery UI) y cambian de vez en cuando, y los errores y omisiones pueden omitirse fácilmente desde una lista de archivos WiX. Entonces realmente debería mantenerse sincronizado automáticamente.

No estoy de acuerdo con la idea de que la lista de archivos debe especificarse explícitamente en WiX y no generarse dinámicamente (que es lo que parece sugerirse en el primer enlace, la redacción no es muy clara). Si necesito eliminar un archivo que eliminaré si proviene del sistema de control de origen, no hay necesidad de realizar el trabajo adicional de mantener dos catálogos paralelos pero diferentes: un conjunto de archivos en el control de fuente y los mismos archivos enumerados en WiX. debería haber una versión de la verdad. Todos los archivos en el árbol de fuentes del sitio web (con ciertas excepciones conocidas que no se utilizan en el tiempo de ejecución, por ejemplo, packages.config) deben incluirse en la implementación.

Por razones corporativas que no tienen mucha elección sobre el uso de WiX para este proyecto

+0

Bueno, no estoy de acuerdo contigo en desacuerdo. Por cierto, ¿hay alguna pregunta aquí? Escribí cientos de instaladores a lo largo de los años y muchos de ellos han sido soluciones de múltiples instancias n-Tier que incluyen ASP.NET web UI y servicios. Escribí automatización para verificar que lo que mi instalador consume y mi proyecto publicado sea idéntico. Cuando se agrega algo, es trivial para mí agregar el archivo a mi instalador y lo mejor es que sé que se hizo perfectamente, no automáticamente. (Despliegue y ore) –

Respuesta

4

En nuestro proyecto MVC 3 utilizamos Paraffin para cosechar los archivos para el instalador. Por ejemplo, puede usar "-ext" para ignorar los archivos con extensión, use "regExExclude" para ignorar el nombre de archivo que coincida con la expresión regular, etc.

Parafina también mantiene la estructura adecuada, todos sus archivos estarían en la carpeta correcta tal como aparece en su proyecto.

2

Utilizo un programa que escribí llamado ISWIX que hace que la creación de wxs combine módulos una simple operación de arrastrar y soltar como InstallShield. Luego consumo ese módulo de fusión en un instalador que maneja la interfaz de usuario y la configuración de IIS.

También tengo postbuild automation que extrae el contenido del MSI y lo compara con lo que publicó el proyecto. Si hay un delta, fallaré en la compilación y tendrá que a) agregarlo a la wxs ob) eliminarlo de la publicación.

Encuentro que la conversión del conteo de archivos de una compilación a otra es mínima y que este sistema no es difícil de mantener. Lo bueno es que todo queda 100% creado de manera intencional y los archivos no se agregan ni eliminan mágicamente del instalador a menos que usted lo haya intentado. La generación dinámica del instalador no justifica el riesgo y la mayoría de las personas que argumentan que sí lo están ni siquiera saben cuáles son esos riesgos.

+0

¿Cuáles son esos riesgos? –

Cuestiones relacionadas