Wix 'की -पैथ' विशेषता क्या है?


124

Wix 'की -पैथ ' विशेषता क्या है? विशेष रूप से, यह निम्नलिखित पर कैसे लागू होता है:

<Component Id="ProgramMenuDir" Guid="*">
  <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
  <RegistryValue Root="HKCU" Key="Software\CompName\AppName" 
                 Type="string" Value="" KeyPath="yes" />
</Component>

111
OMG Wix प्रलेखन पूरी तरह से बेकार है। Wix doc, KeyPath विशेषता के लिए कहता है, कि यदि आप इसे "Yes" पर सेट करते हैं, तो फ़ाइल को घटक के लिए मुख्य पथ माना जाता है। सू की सहायक !!
चेसो

5
@RobMensching - समुदाय में योगदान करने के लिए अपनी भावना और इच्छा की सराहना करें। यह बताना कि मुझे शिकायत कैसे नहीं करनी है, मुझे बताने के लिए उतना अच्छा नहीं है (और अन्य) कैसे शिकायत करें। अगर मुझे 2 साल पहले बग को उठाने की जगह पता थी, तो मैंने कर लिया। इसके अलावा, जैसा कि आप upvotes द्वारा देख सकते हैं, जाहिरा तौर पर अन्य लोग भी ऐसा ही महसूस करते हैं। शायद इस तरह के संदेश के लिए समय है: "वाईएक्स को बेहतर बनाने में मदद करें! कृपया यहां क्लिक करके उपयुक्त कीड़े उठाएं "।
Cheeso

21
करेंगे, @ चेहेसो! कृपया यहां बग दर्ज करें: wixtoolset.org/bugs
रोब मेन्शचिंग

8
@Cheeso समझने की मुख्य अवधारणा यह है कि एक वाईएक्स सेटअप प्रोजेक्ट विंडोज इंस्टालर पैकेज बनाता है। WiX डॉक्स विंडोज इंस्टालर डॉक्स की नकल नहीं करते (और ज्यादातर नहीं करना चाहिए)। यद्यपि आप अक्सर विंडोज इंस्टालर तालिकाओं को समझने के बिना एक वाईएक्स निर्माण का उपयोग कर सकते हैं, अगर कोई सवाल है, तो आपको एमएसडीएन पर डॉक्स की जांच करनी चाहिए। घटकों के लिए, यहां से शुरू करें
टॉम ब्लोडेट

30
@TomBlodget: मैं विंडोज इंस्टालर डॉक्स डुप्लिकेट WiX SHOULD का तर्क देता हूं। अधिकांश उपयोगकर्ताओं के लिए, वाईएक्स / विंडोज इंस्टॉलर विभाजन केवल भ्रम का कारण बनता है, और जितना अधिक अंत उपयोगकर्ता को छिपाया जा सकता है उतना आसान समग्र उपकरण का उपयोग करना है।
स्कॉट स्टैफ़ोर्ड

जवाबों:


122

जैसा कि रॉब मेन्शचिंग ने बताया है :

एक घटक के लिए KeyPath एक एकल संसाधन है जो Windows इंस्टालर यह निर्धारित करने के लिए उपयोग करता है कि क्या कोई घटक किसी मशीन पर "मौजूद" है।

इसका मतलब यह है कि जब विंडोज इंस्टालर यह तय करता है कि क्या आपके घटक को स्थापित करना है, तो यह पहले दिखेगा कि क्या कीपथ संसाधन पहले से मौजूद है। यदि यह है, घटक में कोई भी संसाधन स्थापित नहीं हैं।

कीपैथ संसाधन की उपस्थिति यह भी निर्धारित करती है कि क्या कोई घटक क्षतिग्रस्त हो गया है या एमएसआई को "मरम्मत" करने के दौरान गायब हो गया है।

जब कीपथ संसाधन एक संस्करणित फ़ाइल है, तो Windows इंस्टालर इसे तभी अस्तित्व में मानेगा जब यह किसी समान या उच्चतर संस्करण वाली फ़ाइल को खोजे।

आपके विशिष्ट उदाहरण में, आपके पास एक घटक है जो स्थापना रद्द करने पर एक फ़ोल्डर निकालता है। यह घटक केवल तभी स्थापित किया जाएगा जब दी गई रजिस्ट्री कुंजी अभी तक मौजूद नहीं है। कुंजी पथ के रूप में उपयोग करने के लिए रजिस्ट्री कुंजी जोड़ना एक सामान्य ट्रिक है जब आपको किसी घटक के लिए कीपैथ की आवश्यकता होती है जो एक ऐसे संसाधन को स्थापित करता है जिसे शॉर्टकट के रूप में स्वयं की केपैथ के रूप में उपयोग नहीं किया जा सकता है ।


4
तो फिर एक घटक में केवल फ़ाइल को कीपैथ = "नहीं" विशेषता में स्पष्ट रूप से देने का क्या मतलब है?
क्रिस्टोफर बी। एडकिंस

4
@ एडकिंस: कि उस फ़ाइल को कीपैथ के रूप में लेने के लिए wix के डिफ़ॉल्ट व्यवहार को दबा देगा। नतीजतन, उस घटक के लिए इंस्टॉलर डेटाबेस में कोई कीपैथ नहीं लिखा जाता है। स्थापना के दौरान, विंडोज़ इंस्टॉलर घटक के गंतव्य फ़ोल्डर को कीपैथ के रूप में उपयोग करेगा। इस व्यवहार को प्राप्त करने का एक अन्य तरीका घटक तत्व पर "कीपैथ = हां" सेट करना है। किसी भी मामले में, यह मुझे एक अच्छा विचार नहीं लगता है।
विम कॉइनन जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.