使用 NANT XmlPoke 更改 Wix 产品版本号

Change Wix Product version number using NANT XmlPoke

我最近 运行 遇到了这个问题 - 当我尝试使用 NANT XMLPOKE 任务替换 Wix 产品版本号时,returns 出现以下错误消息 "No matching nodes found"。

<xmlpoke file="..\Setup\abc.wxs" xpath="//Wix/Product[@Version]" value="${version.label}" >

最初我认为这是我编写的 XPATH 语句的问题。所以我一直尝试使用不同的 XPATH(比如 \Wix),但我一直收到相同的消息。

从博客了解到这是由于 WiX 元素的命名空间定义而发生的。请在下面找到解决方案,以防有人找不到该博客。

出现此问题的原因是 Wix 元素中的命名空间定义。您必须添加以下更改才能使 XMLPOKE 正常工作:

<xmlpoke file="..\Setup\abc.wxs" xpath="//wx:Wix/wx:Product/@Version" value="${version.label}" >
      <namespaces>
        <namespace prefix="wx" uri="http://schemas.microsoft.com/wix/2006/wi" />
      </namespaces>
    </xmlpoke>

参考:Soledad Pano's blog