2012-08-17 29 views
7

Trong WIX, tôi có thể làm điều này để tự động tạo ra một số phiên bản đàng hoàng cho MSI của tôi:Ràng buộc WIX FileVersion giá trị phụ?

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

Đó tạo ra một chuỗi như "1.0.1.0" nhưng tôi muốn chỉ có ba phần đầu tiên: "1.0.1 "

Tôi làm cách nào để thực hiện việc này?

+0

bản sao có thể có của [Làm thế nào tôi có thể đặt phiên bản trình cài đặt WiX thành phiên bản xây dựng curent?] (Http://stackoverflow.com/questions/626033/how-can-i-set-the-wix-installer-version -to-the-curent-build-version) –

+0

Không phải là bản sao. Tôi đã xem xét kỹ lưỡng câu trả lời đó :) – l33t

Trả lời

10

Không có cách nào để chỉ nhận được ba trường đầu tiên của một ràng buộc FileVersion. Tuy nhiên, nếu bạn đồng ý gán phiên bản bốn phần cho Product/@Version (hoàn toàn hợp lệ, mặc dù các nâng cấp lớn sẽ chỉ xem xét ba trường đầu tiên) thì bạn có thể truy cập từng phần chính, nhỏ, xây dựng và sửa đổi bằng cách sử dụng các biến sau:

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

Hy vọng điều đó có thể hữu ích.

+1

Vì vậy, tôi có thể đặt tiêu đề của trình cài đặt của tôi thành một cái gì đó như thế này? '" My Installer v! (Bind.property.ProductVersion.Major).! (Bind.property.ProductVersion.Minor).! (Bind.property.ProductVersion.Build) "' – l33t

+0

Tôi tin rằng 'WIX' nên hỗ trợ đọc phiên bản các trường nhị phân. Ví dụ. '... TargetFileName.ProductVersion.Major' – l33t

+1

Tôi tin rằng nhận xét đầu tiên của bạn sẽ hoạt động. Nhận xét thứ hai là yêu cầu tính năng hợp lý. :) –

Các vấn đề liên quan