4

有没有办法从文本文件中读取 WiX 变量的值?

我想要做的是将特定于版本的信息包含到安装包中。

此版本信息在预构建步骤中提取到文本文件中,问题是如何将此文本文件内容传播到构建过程中。

一种可能的解决方案是在预构建步骤中更新整个 .wxs 文件,但感觉有点草率。

有没有其他侵入性较小的方法?

谢谢你。

4

2 回答 2

10

创建一个单独的文件“includes.wxi”,例如:

<?xml version="1.0" encoding="utf-8"?>
<Include Id="VersionNumberInclude">
    <?define MajorVersion="1" ?>
    <?define MinorVersion="5" ?>
    <?define MicroVersion="99" ?>
    <?define BuildVersion="14954" ?>
</Include>

在你的 wxs 文件中,你可以像这样包含这个文件:

<?include VersionNumberInclude.wxi ?>

定义可以这样使用:

<?define VersionNumberInternal="$(var.MajorVersion).$(var.MinorVersion).$(var.BuildVersion)" ?>
<?define VersionNumberUserVisible="$(var.MajorVersion).$(var.MinorVersion).$(var.MicroVersion).$(var.BuildVersion)" ?>
于 2008-12-28T15:45:23.543 回答
0

在我的环境中,WiX 脚本始终由 MSBuild 文件构建。这意味着我可以在命令行上传递我想要的任何特定于版本的信息。CruiseControl.NET 在构建时将这些版本号传递给我的 WiX 脚本。

于 2008-12-28T15:50:58.133 回答