pages - Paquete de WiX para instalar.NET
wix login (2)
Estoy intentando crear un paquete para instalar .NET Framework 4.0 si es necesario instalarlo. Me doy cuenta de que hay preguntas similares, pero todas las respuestas son solo fragmentos de código y no describen en qué archivo se ingresan ni cómo se importan al archivo .wxs.
Esto es lo que tengo en un archivo Bundle.wxs. Recibo advertencias del compilador sobre múltiples secciones de entrada.
Error 2 Se han encontrado varias secciones de entrada ''{CF06625F-7B6B-4B6E-A24E-FDDCA7CFFFF4}'' y ''{0D1EE60A-FC4F-4083-8B1E-311E75A67B4C}''. Solo una sección de entrada puede estar presente en un solo objetivo.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle UpgradeCode="{C6FF478E-C3DA-4D78-929D-24C3F3307356}" Version="4.0">
<Chain>
<PackageGroupRef Id="NetFx40Redist"/>
</Chain>
</Bundle>
</Wix>
La mayoría de los enlaces en la página de WiX están rotos, y no mencionan nada acerca de los atributos para usar en la etiqueta Bundle, y parecen intercambiar el Paquete / Producto. No pude encontrar ninguna mención en las páginas de Wix sobre la configuración de un GUID para paquetes. ¿Es eso algo nuevo para Wix 3.7?
http://wix.sourceforge.net/manual-wix3/install_dotnet.htm
- ¿Cómo uso el .NET 4.0 PackageGroupRef / PayloadGroupRef predefinido?
- ¿Tiene que estar en Bundle.wxs? ¿Dónde se importa en mi producto principal.wxs?
El elemento Wix/Bundle
es la raíz de un proyecto Bootstrapper. No entra en el mismo proyecto que su Product.wxs. En Visual Studio, hay una plantilla para los nuevos proyectos de Wix Bootstrapper. Probablemente no hayas creado uno.
Luego, en la cadena de su paquete, querrá .NET y el MSI de su aplicación, como en el ejemplo. Para usar NetFx40Web, debe hacer referencia a WixNetfxExtension. Los proyectos Wix que hacen referencia a otros proyectos Wix tienen variables predefinidas para que pueda usar sus propiedades, como TargetPath. El ejemplo asume que este proyecto Bootstrapper hace referencia a un proyecto de instalación llamado MyApplicationSetup.
<Chain>
<PackageGroupRef Id="NetFx40Web"/>
<MsiPackage Id="MyApplication" SourceFile="$(var.MyApplicationSetup.TargetPath)"/>
</Chain>
Ese error indica que su proyecto se está construyendo con archivos que contienen más de uno de estos elementos: Product
, Module
, Patch
, PatchCreation
, Bundle
. En su caso, parece que ha agregado un archivo con un elemento Bundle
a un proyecto que ya tenía un elemento Product
. Eso no es compatible con el conjunto de herramientas de WiX hoy. Necesitas poner el elemento Bundle
en un proyecto separado.
Por lo tanto, cuando cree un bootstrapper y MSI, tendrá dos archivos .wixproj. El primer .wixproj contendrá su información de Product
. El segundo .wixproj contendrá su información de Bundle
y tendrá una referencia del proyecto al primer .wixproj para que el orden de compilación sea correcto.