2012-05-03 43 views
1

在有關設置產品版本屬性的WiX的安裝程序(How can I set the WiX installer version to the current build version?)另一個問題,最投票的答案(我已經嘗試和作品)建議:產品版本在維克斯3.5和Visual Studio的WiX項目

「您可以使用Product/@Version="!(bind.FileVersion.<FileId>)",light.exe將使用FileId引用的文件的版本填充值。」

...這是偉大的,但使用的是FILEID的維克斯VS項目的收集能力的可執行威力變化時,會出現在Visual Studio的WiX項目略帶脆性。

除了使用FileVersion預處理器擴展(http://wixfileversionext.codeplex.com/)之外,是否有更安全的方式來引用Visual Studio中自動生成的.wxs文件中的特定文件?

回答

2

您可以通過XSL轉換(-t選項heat.exe)運行生成的.wxs文件,該文件將使用您選擇的文件ID替換自動生成的文件ID。因此,您可以從其他地方安全地引用它。

1

我們使用我們的構建系統來控制所有版本,並將其作爲msbuild屬性傳遞給WiX項目。

<PropertyGroup> 
    <version_major Condition=" '$(version_major)' == '' ">0</version_major> 
    <version_minor Condition=" '$(version_minor)' == '' ">0</version_minor> 
    <build_number Condition=" '$(build_number)' == '' ">0</build_number> 
    <build_vcs_number Condition=" '$(build_vcs_number)' == '' ">0</build_vcs_number> 
    <InstallerVersion>$(version_major).$(version_minor).$(build_number).0</InstallerVersion> 
</PropertyGroup> 

和參考的是,在維克斯源與Product/@Version="$(var.InstallerVersion)"。如果你的編譯系統也控制你的二進制文件的版本控制,那就行了。