Pergunta
Eu tenho um arquivo WIX que eu preciso modificar usando MSBuild. Começa assim:
<?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 ...-->
O meu problema é que eu não sei o que o XPath iria ao <?define ProductVersion = "1.0.1"?>
seria. Existe uma maneira para fazer referência que via XPath para que eu possa usar o SDC SetValue MSBuild de tarefas para mudar isso? Não é um nó (eu acho), então eu não sei como fazer referência a ela.
Vaccano
Solução
Parece que /Wix/processing-instruction('define')
pode funcionar para um XPath (ou não MSBuild reconhece que, eu não sei).
Ao ligar isso em SketchPath , eu era capaz de clicar em torno dele e testar vários XPaths para ver o que iria selecionar esse elemento.
Outras dicas
Outra abordagem seria definir o parâmetro através da linha de comando para vela:
candle -dProductVersion=1.0.1
// instrução de processamento ( 'definir')
<?define>
é um nó instrução de processamento, de modo que você deve ser capaz de lidar com ele usando uma expressão XPath como
//processing-instruction('define')