visual tutorial toolset studio wix bundle wix3.7 burn

tutorial - El paquete del instalador Wix produce un "msi" corrupto



wix visual studio 2015 (2)

Un Wix/Bundle se usa para producir un archivo ejecutable que encadena a los instaladores. Por lo tanto, la salida debe tener una extensión .exe.

Puede invocar el compilador y el enlazador de WiX Toolset manualmente, ya que parece haberlo hecho o usar un proyecto MSBuild. WiX instala un proyecto de plantilla para que Visual Studio lo use. Se llama WiX Bootstrapper. Si no lo sabía, los proyectos de Visual Studio y SharpDevelop son proyectos de MSBuild. Entonces, hay dos formas más de construir una compilación: a través del IDE o en la línea de comandos con msbuild.exe.

Nota: Visual Studio no mostrará las cuatro plantillas de proyecto de WiX si instala WiX antes de Visual Studio. En ese caso, simplemente repara la instalación de WiX.

Usando un código muy simple casi el mismo que en los ejemplos:

<?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Bundle Version="1.0" Manufacturer="ACME" UpgradeCode="6AF8AF7D-3B44-4496-9E64-56206DF66C55"> <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/> <Chain> <MsiPackage SourceFile="wpftoolkit.msi"/> </Chain> </Bundle> </Wix>

Obtengo un archivo setup.msi que produjo el error de manera imitativa en el inicio:

msiexec /i setup.msi /l*v log.txt log.txt: === Verbose logging started: 02.10.2013 14:12:11 Build type: SHIP UNICODE 5.00.7600.00 Calling process: C:/Windows/system32/msiexec.exe === MSI (c) (B0:48) [14:12:11:804]: Font created. Charset: Req=204, Ret=204, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg MSI (c) (B0:48) [14:12:11:805]: Font created. Charset: Req=204, Ret=204, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg MSI (c) (B0:A4) [14:12:11:823]: Resetting cached policy values MSI (c) (B0:A4) [14:12:11:823]: Machine policy value ''Debug'' is 0 MSI (c) (B0:A4) [14:12:11:823]: ******* RunEngine: ******* Product: Setup.msi ******* Action: ******* CommandLine: ********** MSI (c) (B0:A4) [14:12:11:824]: Note: 1: 2203 2: Setup.msi 3: -2147286960 MSI (c) (B0:A4) [14:12:11:824]: MainEngineThread is returning 1620 === Verbose logging stopped: 02.10.2013 14:12:11 ===

Tool dark.exe de Wix SDK dice que setup.msi está dañado y no se puede desmontar. La semana pasada, varias veces logré compilar este tipo de paquete y el msi funcionó bien, pero no puedo descifrar nada de lo que estaba haciendo.

También intenté compilar este ejemplo sin utilizar MSBuild, pero directamente con las herramientas Wix SDK, todavía sin suerte, la compilación finaliza sin errores, pero el resultado es que msi está corrupto de todos modos:

candle *.wxs light *.wixobj -out setup.msi -ext WixBalExtension

¿Hay algo que me he perdido sobre la compilación de los paquetes de Wix que impide que funcione correctamente?


Es absolutamente contrario a la intuición, pero creo que he encontrado una solución:

candle *.wxs light *.wixobj -out setup.EXE -ext WixBalExtension

El formato de salida es EXE , no MSI . Simple, ¿verdad?

Por cierto, SharpDevelop (así como Visual Studio, creo) no tiene ninguna opción para especificar el archivo de salida como EXE, solo MSI, msp y wixlib.