2008-12-28 77 views
4

有没有办法从文本文件中读取WiX变量的值?将文本文件内容包含到WiX脚本中

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

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

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

有没有其他的,较少侵入的方式?

谢谢。

回答

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)" ?> 
+0

谢谢Stefan,那正是我之后。井井有条! – user48829 2008-12-29 03:58:38

0

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