El instalador de WiX msi no instala la aplicación Winform creada con Visual Studio 2017

Para una prueba simple, creé una aplicación de instalación Wix para una aplicación Winform simple de la siguiente manera. Pero cuando ejecuto el msi creado con el instalador, se ejecuta por solo un segundo y sale sin instalar la aplicación Winform. Pregunta : ¿Cuál podría ser el problema aquí? Parece que falta algo en mi archivo Product.wxs . Nota : estoy usando VS2017

Pasos para producir el problema

  1. Instalado Wix Toolset Visual Studio 2017 Extension desde aquí y siguió sus instrucciones para instalar WiX 3.11 RC2 desde aquí
  2. Creó un Winform project predeterminado de Winform project [solo una forma única no se le agregó]
  3. Creó un Wix Setup project al utilizar la plantilla Toolset\v3\Setup Project en la misma solución
  4. En el proyecto de instalación de WiX Se agregó una referencia al proyecto de Winform
  5. Construyó la solución completa.
  6. Haga clic con el botón derecho en el proyecto de instalación y vuelva a .msi para crear un archivo .msi en su carpeta \..bin\Debug
  7. Haga doble clic en el archivo .msi del paso 6. El archivo se ejecutó durante un segundo, apareció el cuadro de diálogo de instalación de Windows 10 (como aparece para cualquier instalación que le pregunte si desea instalar este progtwig). Hice clic en Yes . El instalador se ejecutó por un segundo nuevamente y luego salió. Pero la aplicación Winform no estaba instalada.

Archivo predeterminado de Product.wxs [No agregué nada aquí excepto para agregar un valor al atributo Manufacturer ]

                     <!--  -->  <!--  -->    

“Hola WiX” (aluminio transparente por favor)

Creo que lo que necesitas es el “Hola mundo” de WiX de CodeProject . Esto ya es bastante viejo, pero sigue siendo bueno para mostrarte los principios básicos de comstackr una MSI funcional.

ACTUALIZACIÓN : A continuación he agregado una descripción paso a paso de cómo comstackr una MSI de un nuevo proyecto de WiX 3 Visual Studio.

Aquí hay otra respuesta de hace mucho tiempo con algo de información contextual sobre lo que realmente es WiX: MSI vs paquetes nuget: ¿cuál es mejor para la entrega continua? . Aquí también encontrarás el enlace “hello world”, pero también muchos otros enlaces.

En resumen : verifique el primer enlace para obtener el “mundo hello” de WiX. Luego actualice su fuente con un par de componentes de prueba y vuelva a comstackr. Debes ponerte en contacto con Orca (herramienta SDK) para poder ver los archivos MSI comstackdos. Como tiene instalado Visual Studio, intente buscar Orca-x86_en-us.msi e instálelo (este es el propio visor y editor oficial de MSI de Microsoft). Luego encuentra Orca en el menú de inicio. Técnicamente, Orca se instala como parte de Windows SDK (no de Visual Studio), pero Windows SDK se incluye con la instalación de Visual Studio. Una vez que tenga un archivo comstackdo de MSI, simplemente haga clic derecho y seleccione Edit with Orca .

Se necesitará algo de experiencia antes de que ese archivo realmente tenga sentido. En esencia, es una base de datos MS SQL primitiva almacenada en un archivo de almacenamiento estructurado COM (OLE). Esencialmente un sistema de archivos en un archivo con flujos para diferentes contenidos (como archivos y tablas de datos, etc.). Solo piense en ello como una base de datos con integridad referencial normal y enfoque en las tablas centrales como File and Component al principio.


Comstackción Minimal WiX MSI – Paso a paso

Permítanme intentar una descripción paso a paso de lo que puede hacer en un proyecto de WiX 3 recién creado para comstackrlo con una GUI predeterminada de WiX. Puede ver estos cambios “fusionados” en una muestra completa en la última sección de la respuesta, pero lea esto paso por paso para que tenga sentido.

  1. Crea un nuevo proyecto de WiX3 . Ya sabes cómo hacerlo, no perderé el tiempo con los detalles.

  2. Establezca el atributo Manufacturer en el nombre de su empresa. Ahora establece un nuevo nombre de tu elección para el atributo Name . En esta muestra, se establece en MinimalTester , use algo más, por favor.

  3. Cambie a para usar los archivos cab incrustados en el MSI. De esta forma, solo se crea el MSI y no hay ningún archivo CAB externo adicional.

  4. Directamente después del elemento MediaTemplate, agregue esto: . Esto agregará un diálogo predeterminado de WiX configurado a su MSI, por lo que tiene los elementos básicos de lo que se necesita para ser más genéricamente útil. Ahora puede ejecutar la reparación y modificar y obtendrá un asistente para la instalación original en la línea de lo que proporcionan la mayoría de los archivos MSI desde Installshield o Advanced Installer u otras herramientas profesionales. Y lo más importante: su instalación administrativa tendrá un diálogo donde puede especificar dónde se deben extraer los archivos.

  5. Agregaremos nuestro propio Acuerdo de Licencia a la configuración de WiX (o de lo contrario obtendrá un mensaje por defecto). Directamente siguiendo agregue este elemento: . Ahora crea el archivo TestLicenseAgreement.rtf y TestLicenseAgreement.rtf en la misma carpeta que tu archivo fuente principal de WiX (de manera rápida: en Visual Studio, haz clic derecho en el proyecto y “Abrir carpeta en el Explorador de archivos”, ahora crea el archivo RTF con el clic derecho => Nuevo => archivo RTF. Y tal vez abra el RTF e ingrese algún texto de prueba). Mayor personalización de los cuadros de diálogo (mapas de bits y más).

  6. El conjunto de diálogo de WiX se define en un archivo DLL, necesitamos referenciarlo. En su proyecto Visual Studio WiX: Right click References => Add Reference... => Navigate to C:\Program Files (x86)\WiX Toolset v3.11\bin\ . Haga doble clic en WixUIExtension.dll y finalmente haga OK en OK .

  7. Ahora agregue el componente mínimo absoluto posible en WiX con una ruta absoluta especificada como fuente. Esto es para asegurarse de que puede comstackr el MSI. Después, puede hacer que la ruta sea relativa o una variable (simplemente agregue esto directamente debajo del elemento de directorio INSTALLFOLDER por ahora):

     
  1. Finalmente, haga clic derecho en el proyecto de WiX en su solución y seleccione Build . Y puede probar rápidamente ejecutar el MSI haciendo clic derecho en el proyecto de WiX y haciendo clic en Open Folder in File Explorer . Ahora haz doble clic en bin y luego en Debug (o Release si cambiaste a una comstackción de lanzamiento; no estoy seguro de cuáles son las “diferencias predeterminadas” entre las dos configuraciones). Debería ver su propio acuerdo de licencia en el segundo diálogo en la secuencia de diálogo.

Las últimas versiones de WiX tienen grandes valores predeterminados para los atributos que casi siempre se establecen en “valores de plantilla” o donde dos atributos son esencialmente redundantes. Simplemente déjelos fuera de su fuente y permita que el comstackdor de WiX los agregue con los valores predeterminados. Mucho menos alboroto

Como ejemplo: el elemento anterior carece de un Component Id . Durante la comstackción, se establece de manera predeterminada en Id del elemento File que contiene. El File element Id a su vez, también falta y de forma predeterminada al nombre de archivo especificado por el Source attribute (que es un atributo obligatorio).

Tal vez mire esta respuesta para una descripción más larga y un ejemplo concreto hacia abajo: ¿ Sintaxis para guids en WIX? ¿Ve lo simple que pueden ser sus archivos fuente de WiX una vez que elimine toda la redundancia y duplicación de ciertos atributos? Menos texto, menos errores.


Ejemplo de fuente mínima de WiX – Comentarios en línea

En la muestra siguiente, el componente se ha movido al ComponentGroup predeterminado; por lo tanto, no es necesario especificar a qué característica pertenece (a diferencia de lo que se indicó anteriormente).

 < ?xml version="1.0" encoding="UTF-8"?>                                 

Intenta comstackr y probar la instalación. Debería instalar en C:\Program Files (x86)\MinimalTester en un sistema normal.

Tal vez vea más enlaces para los tutoriales de WiX aquí: WIX Installer no muestra correctamente la imagen personalizada de WixUI Dialog .

Prueba esto:

https://github.com/iswix-llc/iswix-tutorials

https://www.youtube.com/watch?v=nnV_OU6fk8c

Descargo de responsabilidad: soy el mantenedor de IsWiX, un acelerador de FOSS WiX que proporciona plantillas de proyecto mejoradas (andamios) y diseñadores gráficos para hacer la mayor parte del trabajo pesado de WiX XML por usted. Como puede ver en el video, esto es de solo unos pocos minutos de trabajo.