पर नई फ़ाइल जोड़ें मेरे पास एक साझा डीएल है, हम इसे कई उत्पादों द्वारा स्थापित Utility.dll को कॉल करेंगे। मेरी WIX फ़ाइल में मैं Utility.dll को एक अलग घटक के रूप में स्थापित करता हूं। अब Utility.dll का संस्करण 2.0 एक अतिरिक्त डीएल संदर्भित करता है, UtilityUtility.dll जिसे साथ में स्थापित करने की आवश्यकता होगी।WIX साझा घटक
UtilityUtility.dll को एकीकृत करने के अपने पहले प्रयास के लिए मैंने एक नया WIX घटक बनाया जिसमें नया डीएलएल था।
यह इस परिदृश्य में समस्याओं का कारण बनता
1) उपयोगकर्ता को स्थापित करता है उत्पाद 1 {Utility.dll 1.0}
2) उपयोगकर्ता को स्थापित करता है उत्पाद 2 {Utility.dll 2.0, UtilityUtility.dll 2.0}
3) उपयोगकर्ता उत्पाद 2 {Utility.dll 2.0}
द्वारा अनइंस्टॉल अब जब कोई उपयोगकर्ता Utility.dll का उपयोग करता है यह असफल हो जायेगी जब यह संदर्भित UtilityUtility.dll
यह मेरे लिए UtilityUtility.dll जोड़ने के लिए नेतृत्व नहीं मिल सकता है मूल घटक जो यूट को रोकता है ilityUtility.dll को पिछले परिदृश्य में हटाए जाने से ही अपने स्वयं के मुद्दे के साथ आता है।
1) उपयोगकर्ता को स्थापित करता है उत्पाद 1 {Utility.dll 1.0}
2) उपयोगकर्ता को स्थापित करता है उत्पाद 2 {Utility.dll 2.0, UtilityUtility.dll 2.0}
3) उपयोगकर्ता द्वारा अनइंस्टॉल उत्पाद 2 {Utility.dll 2.0, UtilityUtility .dll 2.0}
4) उपयोगकर्ता द्वारा अनइंस्टॉल उत्पाद 1 {UtilityUtility.dll 2.0}
UtilityUtility.dll के रूप में यह उत्पाद 1 की स्थापना रद्द करें द्वारा हटाया नहीं प्राप्त करता है अनाथ है (यह घटक में मौजूद नहीं था जब यह मूल रूप से था स्थापित)।
क्या मेरे पास कोई अन्य विकल्प है?
धन्यवाद
पहले परिदृश्य के साथ REINSTALLMODE = a (या amus) का उपयोग कर उत्पाद 2 की अनइंस्टॉल के बाद उत्पाद 1 की पुन: स्थापना/मरम्मत की स्थिति की मरम्मत होगी? मेरे पास कुछ हद तक समान परीक्षण प्रोजेक्ट है और ऐसा लगता है कि मरम्मत v2 –
के साथ v2 DLL को प्रतिस्थापित करती है हां, REINSTALLMODE = के साथ उत्पाद 1 की मरम्मत करना मशीन पर उस पैकेज में सभी फ़ाइलों को मजबूर करेगा, संभावित रूप से किसी भी अन्य साझा फ़ाइलों को तोड़ देगा। "ए" स्विंग करने के लिए एक बहुत क्रूर हथौड़ा है। –
पोस्ट रॉब घटक नियमों के बारे में बताता है, मुझे विश्वास है, http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101 पर ले जाया गया है – adamjcooper