2012-08-17 58 views
7

在WIX,我能做到這一點自動生成我的MSI一個體面的版本號:綁定WIX FileVersion子值?

<?define ProductVersion="!(bind.FileVersion.MyMainExecutable)" ?> 
<Product Version="$(var.ProductVersion)" ... /> 

產生像「1.0.1.0」的字符串,但我想只有前三個部分:「1.0.1 「

我該如何做到這一點?

+0

可能重複[如何將WiX安裝程序版本設置爲curent構建版本?](http://stackoverflow.com/questions/626033/how-can-i-set-the-wix-installer-version -to-the-the-curent-build-version) – 2012-08-17 15:06:38

+0

不是重複的。我已經仔細檢查了答案:) – l33t 2012-08-17 15:11:33

回答

10

沒有辦法只得到約束的前三個字段FileVersion。但是,如果您沒有將四部分版本分配到Product/@Version(這是完全有效的,雖然主要升級只會查看前三個字段),那麼您可以使用以下方法訪問主要,次要,構建和修訂的每個部分以下變量:

!(bind.property.ProductVersion.Major) 
!(bind.property.ProductVersion.Minor) 
!(bind.property.ProductVersion.Build) 
!(bind.property.ProductVersion.Revision) 

希望這可以是有用的。

+1

因此,我可以將我的安裝程序的標題設置爲這樣的內容? '我的安裝程序v!(bind.property.ProductVersion.Major)。!(bind.property.ProductVersion.Minor)。!(bind.property.ProductVersion.Build)'' – l33t 2013-05-08 10:21:22

+0

我相信'WIX'應該支持讀取版本二進制字段。例如。 '... TargetFileName.ProductVersion.Major' – l33t 2013-05-08 10:23:41

+1

我相信你的第一條評論應該可以工作。第二個評論是一個合理的功能請求。 :) – 2013-05-08 14:25:15