2008-12-28 109 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腳本。