2013-08-16 4 views
16

वाईएक्स बंडल में "संस्करण" विशेषता प्रोग्राम और फीचर्स में प्रदर्शित होती है। इसलिए यह मेरे वास्तविक अनुप्रयोग के संस्करण संख्या के समान होना चाहिए, है ना?वाईएक्स बंडल संस्करण को मेरे एप्लिकेशन के संस्करण के समान कैसे बनाएं

धारणा पर वे वही होना चाहिए जो तुरंत यह स्पष्ट नहीं लगता है कि यह अद्यतन स्वचालित रूप से कैसे प्राप्त किया जाए। मुझे MSIthis question के अनुसार कर रहा है, लेकिन बंडल/बूटस्ट्रैपर बिट नहीं है। मैं बूटस्ट्रैपर बंडल को वही काम कैसे कर सकता हूं और एमएसआई संस्करण संख्या पढ़ सकता हूं?

उत्तर

22

अपने पहले प्रश्न का उत्तर देने के लिए, इसके लिए कोई कठोर और तेज़ नियम नहीं हैं। इसलिए अपने WIX बंडल संस्करण को अपडेट करना जरूरी नहीं है और अपने एमएसआई संस्करण से मेल खाता है।

दूसरे प्रश्न के लिए, वास्तव में यकीन नहीं है। लेकिन आप इस बांधने की मशीन चर की कोशिश कर सकते हैं:

!(bind.packageVersion.PackageID) 

संपादित कार्यक्रम है कि आप स्थापित कर रहे के तत्व "आईडी" विशेषता के साथ PackageID बदलें। कुछ की तरह: Version="!(bind.packageVersion.MyAppName)"

<MsiPackage SourceFile="SomePath\MyAppName.msi" Id="MyAppName"/> 

इस POST में उल्लिखित। अधिक बाइंडर चर के लिए WIX documentation भी देखें।

संपादित 2017/05/11 - लगता है कि वहाँ क्या packageID होना चाहिए चारों ओर भ्रम था और मैं बॉब Lutz के आधार पर जवाब संपादित किया है नीचे जवाब।

+3

लोगों के दौरे के लिए, 'पैकेज आईडी' को उस प्रोग्राम के * नाम * के साथ प्रतिस्थापित करें जिसे आप इंस्टॉल कर रहे हैं। इसे 'संस्करण = "जैसा दिखना चाहिए! (Bind.packageVersion.MyAwesomeApp)" '(कम से कम मेरे लिए काम किया ..) – Default

+0

दरअसल यह ऐप का नाम नहीं है, लेकिन इसकी आईडी है। बॉब के इस प्रश्न के उत्तर को देखें: http://stackoverflow.com/a/25828610/118878 – DenNukem

+0

'! (Bind.packageVersion.PackageID)' 'पैकेजआईडी 'द्वारा प्रस्तुत एमएसआई फ़ाइल का पैकेज संस्करण संख्या प्राप्त करता है। उस नंबर को आपके एप्लिकेशन संस्करण संख्या के समान बनाने के लिए आपको 'संस्करण = "की भी आवश्यकता है! (Bind.FileVersion.MyAppID)" '* आपके * एमएसआई कॉन्फ़िगरेशन फ़ाइल * (' product' तत्व की विशेषता) में। –

11

Isaiah4110 के जवाब के पूरक करने के लिए (मैं अभी तक टिप्पणी नहीं कर सकता और मेरे संपादन अस्वीकार कर दिया गया था):

PackageID में पैकेज प्रकारों में से एक (जैसे MsiPackage, ExePackage ...) के लिए ईद मूल्य से आता है अपने जंजीर। तो <MsiPackage SourceFile="SomePath\MyMsi.msi" Id="MyMsi"/> के संस्करण संख्या का संदर्भ देने के लिए आप उपयोग करेंगे! (Bind.packageVersion.MyMsi)।

यदि आपके पास कोई आईडी नहीं है (जैसे स्वयं), तो आपको एक को परिभाषित करने की आवश्यकता होगी।

+1

यह स्वीकार्य उत्तर होना चाहिए। –

संबंधित मुद्दे