Saltar al contenido

msbuild – Cómo hacer referencia al elemento de archivo dentro del archivo wxs generado por heat.exe en Wix

octubre 28, 2021
apple touch icon@2

Voy a crear una configuración para mi proyecto web. yo suelo http://blog.bartdemeyer.be/2013/10/create-an-installer-for-website-with-wix-part-1/ como mi referencia. En medio del artículo, el autor crea un archivo llamado WebSiteContent.wxs usando heat.exe:

<Target Name="Harvest">
<!-- Harvest all content of published result -->
<Exec
    Command='$(WixPath)heat dir $(Publish) -dr INSTALLFOLDER -ke -srd -cg MyWebWebComponents -var var.publishDir -gg -out $(WebSiteContentCode)'
    ContinueOnError="false"
    WorkingDirectory="." />
</Target>

Después de ejecutar msbuild, el archivo contiene el siguiente contenido:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <!--...-->
  <Fragment>
    <ComponentGroup Id="MyWebWebComponents">
      <!--...-->
      <Component Id="cmpCDB7F4EFDEF1E65C3B12BEBAD7E4D7EA" Directory="INSTALLFOLDER" Guid="{7EA5DB39-513D-482B-9FDC-2F16FCE5E712}">
        <File Id="fil8994620207C22CA15AF75ACDD6420C79" KeyPath="yes" Source="$(var.publishDir)Web.config" />
      </Component>
    </ComponentGroup>
  <!--...-->
  </Fragment>
</Wix>

Quiero cambiar el valor del contenido del archivo web.config como se describe en Cambiar valores de nodo XML de WiX pero no sé cómo agregar una referencia fuera del archivo WebSiteContent.wxs al elemento fil8994620207C22CA15AF75ACDD6420C79.

Sé que puedo agregar un script xml al archivo WebSiteContent.wxs. Pero debido a que en cada compilación se limpiará, no quiero cambiar el archivo WebSiteContent.wxs en cada compilación.

close