Pregunta

Tengo un archivo WIX que necesito modificar usando MSBuild. Comienza así:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension">

  <?--... Removed Params ...-->

  <?define ProductVersion = "1.0.1"?>

  <?--... Removed Params ...-->

  <Product Id='$(var.ProductCode)'
    UpgradeCode='$(var.UpgradeCode)'
    Name='$(var.AppName)' Language="1033" Version='$(var.ProductVersion)'
    Manufacturer='$(var.Manufacturer)'>
    <Package Id='$(var.PackageCode)' InstallerVersion="200" 
    Compressed="yes" />

  <?--... Rest of the WIX XML file ...-->

Mi problema es que no sé qué haría el XPath al <? define ProductVersion = " 1.0.1 "? > . ¿Hay alguna forma de hacer referencia a eso a través de XPath para que pueda usar la tarea SDC SetValue MSBuild para cambiarlo? No es un nodo (creo), así que no estoy seguro de cómo hacer referencia a él.

Vaccano

¿Fue útil?

Solución

Parece que / Wix / processing-instruction ('define') puede funcionar para un XPath (ya sea que MSBuild lo reconozca, no lo sé).

Al conectarlo en SketchPath , pude hacer clic en él y probar varios XPaths para ver Qué seleccionaría ese elemento.

Otros consejos

Otro enfoque sería definir el parámetro a través de la línea de comandos a candle:

candle -dProductVersion=1.0.1

// instrucción-procesamiento ('definir')

<? define > es un nodo de instrucciones de procesamiento, por lo que debería poder abordarlo con una expresión XPath como

//processing-instruction('define')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top