Domanda
Ho un file WIX che devo modificare usando MSBuild. Inizia così:
<?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 ...-->
Il mio problema è che non so quale sarebbe XPath per <? define ProductVersion = " 1.0.1 "? >
. Esiste un modo per fare riferimento a ciò tramite XPath in modo da poter utilizzare l'attività SetCalue MSBuild di SDC per modificarlo? Non è un nodo (penso) quindi non sono sicuro di come fare riferimento.
Vaccano
Soluzione
Sembra che / Wix / processing-istruzione ('define')
potrebbe funzionare per un XPath (se MSBuild lo riconosce o meno, non lo so).
Collegandolo a SketchPath , sono stato in grado di fare clic su di esso e testare vari XPath per vedere cosa selezionerebbe quell'elemento.
Altri suggerimenti
Un altro approccio sarebbe quello di definire il parametro dalla riga di comando a candela:
candle -dProductVersion=1.0.1
// processing-instruction ( 'definire')
<? define >
è un nodo di istruzioni di elaborazione, quindi dovresti essere in grado di affrontarlo usando un'espressione XPath come
//processing-instruction('define')