Build 将文本文件内容包括到WiX脚本中

Build 将文本文件内容包括到WiX脚本中,build,wix,versioning,Build,Wix,Versioning,有没有办法从文本文件中读取WiX变量的值 我想做的是在instl包中包含一个特定于版本的信息 此版本信息在预构建步骤中提取到文本文件中, 问题是如何将此文本文件内容传播到构建过程中 一种可能的解决方案是在预构建步骤中更新整个.wxs文件 也是,但感觉有点邋遢 有没有其他不那么麻烦的方式 谢谢。创建一个单独的文件“includes.wxi”,例如: <?xml version="1.0" encoding="utf-8"?> <Include Id="VersionNumberI

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

我想做的是在instl包中包含一个特定于版本的信息

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

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

有没有其他不那么麻烦的方式


谢谢。

创建一个单独的文件“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>
<?include VersionNumberInclude.wxi ?>
<?define VersionNumberInternal="$(var.MajorVersion).$(var.MinorVersion).$(var.BuildVersion)" ?>
<?define VersionNumberUserVisible="$(var.MajorVersion).$(var.MinorVersion).$(var.MicroVersion).$(var.BuildVersion)" ?>

在wxs文件中,您可以像这样包含此文件:

<?xml version="1.0" encoding="utf-8"?>
<Include Id="VersionNumberInclude">
    <?define MajorVersion="1" ?>
    <?define MinorVersion="5" ?>
    <?define MicroVersion="99" ?>
    <?define BuildVersion="14954" ?>
</Include>
<?include VersionNumberInclude.wxi ?>
<?define VersionNumberInternal="$(var.MajorVersion).$(var.MinorVersion).$(var.BuildVersion)" ?>
<?define VersionNumberUserVisible="$(var.MajorVersion).$(var.MinorVersion).$(var.MicroVersion).$(var.BuildVersion)" ?>

定义可以这样使用:

<?xml version="1.0" encoding="utf-8"?>
<Include Id="VersionNumberInclude">
    <?define MajorVersion="1" ?>
    <?define MinorVersion="5" ?>
    <?define MicroVersion="99" ?>
    <?define BuildVersion="14954" ?>
</Include>
<?include VersionNumberInclude.wxi ?>
<?define VersionNumberInternal="$(var.MajorVersion).$(var.MinorVersion).$(var.BuildVersion)" ?>
<?define VersionNumberUserVisible="$(var.MajorVersion).$(var.MinorVersion).$(var.MicroVersion).$(var.BuildVersion)" ?>


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

谢谢Stefan,这正是我想要的。非常整洁!