मैं पिछले संस्करण पहले से स्थापित होने पर कस्टम संवाद दिखाने के लिए अपने इंस्टॉलर को कस्टमाइज़ करना चाहता हूं: स्वागत संवाद के बाद उपयोगकर्ता को एक कस्टम संवाद OldVersionDlg
देखना चाहिए जो पिछले संस्करण को मिला था और अनइंस्टॉल किया जाएगा खुद ब खुद।विक्स: यदि पिछले संस्करण को मिला तो कस्टम संवाद दिखाएं
लेकिन कुछ कारणों से संपत्ति UpgradeVersion
तत्व द्वारा निर्धारित null
जब मैं इसे UI/Publish Dialog
में स्थिति में जांचता हूं।
यहां आवश्यक कोड स्निपेट हैं।
Product.wxs:
<Product Id="*" Version="$(var.Version)" UpgradeCode="$(var.ProductId)"
Language="1033" Name="$(var.ProductFullName)" Manufacturer="$(var.Manufacturer)">
<Package Description="$(var.ProductDescription)" InstallerVersion="200" Compressed="yes"
Manufacturer="$(var.Manufacturer)" />
<Property Id="PREVIOUSVERSIONSINSTALLED" Secure="yes" />
<Upgrade Id="$(var.ProductId)">
<UpgradeVersion Minimum="1.0.0.0" Maximum="$(var.Version)"
Property="PREVIOUSVERSIONSINSTALLED"
IncludeMinimum="yes" IncludeMaximum="no" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize" />
</InstallExecuteSequence>
</Product>
WixUI_Wizard.wxs:
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="OldVersionDlg">PREVIOUSVERSIONSINSTALLED</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg">NOT Installed</Publish>
बटन अगला काम नहीं करता। मैंने लॉग इन किया है कि PREVIOUSVERSIONSINSTALLED
FindRelatedProducts
के बाद सेट है। यदि मैं इसे में स्थितियों में उपयोग करता हूं Product.wxs तो सबकुछ ठीक है। लेकिन यूआई विन्यास में यह हमेशा null
है।
किसी भी मदद के लिए धन्यवाद।
एक अन्य समाधान जोड़ने के लिए है प्रकाशित @ आदेश विशेषता /, और आदेश = "1" और दूसरा पहले संवाद सेट ऑर्डर करने के लिए = "2"। संभवतः क्या हो रहा था कि प्रकाशन घटना की स्थिति दोनों को सही साबित किया गया, और इसलिए एमएसआई इंस्टॉलर ने पहली प्रकाशित कार्रवाई को परिभाषित किया। ऑर्डर जोड़कर, यह इंस्टॉलर को बताता है कि निष्पादित करने की क्रिया अगर दोनों प्रकाशित ईवेंट में वास्तविक स्थितियां हों। एक नोट, ऑर्डर इवेंट काउंटर अंतर्ज्ञानी है, और वास्तव में यह उच्च ऑर्डर वैल्यू है जिसे दोनों स्थितियां सत्य होने पर प्राथमिकता दी जाती हैं। आप इसे वजन के रूप में और अधिक सोच सकते हैं, जहां उच्च वजन जीतता है। – pje
@kirmir मुझे फ़ाइल WixUI_Wizard.wxs कहां मिल सकती है? आईटीएक्स की स्थापना के साथ आईटी आना चाहिए? मुझे यह नहीं मिला। क्या आप जानते हैं कि यह काम 3.10 संस्करण के साथ कैसे बनाया जाए? – misshomme
@micmica, यह फ़ाइल मैन्युअल रूप से बनाई गई थी और यह संवाद के आदेश का वर्णन करती है। जब प्रश्न पूछा गया तो मैंने संस्करण 3.5 का उपयोग किया। नए संस्करण के बारे में नहीं जानते, लेकिन मुझे विश्वास है कि कोई अंतर नहीं होना चाहिए। –