2

我想从此代码中提取版本号:

<?xml version="1.0" encoding="UTF-8"?>
<Include>
  <?define ProductVersion = "1.0.0.0" ?>
</Include>

我希望输出为:1.0.0.0,可以这样做吗?

4

2 回答 2

2

如果您使用 Visual Studio 创建基于 WIX 的安装程序,则可以在文件中定义ProductVersion变量。.wixproj

  <Target Name="BeforeBuild">
    <PropertyGroup>
      <DefineConstants>ProductVersion=1.0</DefineConstants>
      ...
    </PropertyGroup>
  </Target>

这可以通过 .wxs 文件访问$(var.ProductVersion)DefineConstants现在您可以使用 XPath从 .wixproj 文件中读取 的值。这会让你ProductVersion = "1.0.0.0"

于 2013-07-02T09:53:37.740 回答
1

processing-instruction()您可以使用节点过滤器访问处理指令内容。处理指令中没有定义语义,因此不能直接查询“属性值”。

您可以使用此 XPath (1.0) 查询通过字符串处理来获取值:

substring-before(substring-after(/Include/processing-instruction(), '"'), '"')
于 2013-07-02T08:37:16.910 回答