XPaths и <? ?> - PullRequest
       41

XPaths и <? ?>

0 голосов
/ 04 мая 2009

У меня есть файл 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, чтобы изменить ее? Это не узел (я думаю), поэтому я не уверен, как ссылаться на него.

Vaccano

Ответы [ 4 ]

4 голосов
/ 04 мая 2009

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

candle -dProductVersion=1.0.1
3 голосов
/ 04 мая 2009

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

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

0 голосов
/ 04 мая 2009

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

//processing-instruction('define')
0 голосов
/ 04 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...