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

Foi útil?

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')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top