Вопрос

У меня есть файл WIX, который мне нужно изменить с помощью MSBuild.Это начинается так:

<?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 ...-->

Моя проблема в том, что я не знаю, как XPath будет относиться к <?define ProductVersion = "1.0.1"?> было бы.Есть ли способ сослаться на это через XPath, чтобы я мог использовать задачу SDC SetValue MSBuild, чтобы изменить ее?Это не узел (я думаю), поэтому я не знаю, как на него ссылаться.

Ваккано

Это было полезно?

Решение

Это выглядит как /Wix/processing-instruction('define') может работать для XPath (признает ли это MSBuild, я не знаю).

Подключив это к СкетчПуть, я смог щелкнуть по нему и протестировать различные XPath, чтобы увидеть, что выберет этот элемент.

Другие советы

Другой подход — определить параметр свечи через командную строку:

candle -dProductVersion=1.0.1

//инструкция-обработки('определить')

<?define> — это узел инструкций обработки, поэтому вы должны иметь возможность обращаться к нему с помощью выражения XPath, например

//processing-instruction('define')
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top