8

मेरे पास एक इंस्टॉलशield स्थापना है जो कस्टम क्रियाओं का उपयोग करती है जो विजुअल सी ++ रनटाइम 8.0 SP1 पर निर्भर करती है। अतीत में, मैं विजुअल स्टूडियो के साथ माइक्रोसॉफ्ट द्वारा प्रदान किए गए मर्ज मॉड्यूल का उपयोग कर रनटाइम स्थापित करने में सक्षम था। विस्टा सी ++ रनटाइम 8.0 एसपी 1 साइड-बाय-साइड इंस्टॉलेशन विस्टा पर काम करने के तरीके के आधार पर, रनटाइम को इंस्टॉलेशन के प्रतिबद्ध अनुक्रम तक उपयोग नहीं किया जा सकता है।मैं प्रोग्रामेटिक रूप से कैसे निर्धारित कर सकता हूं कि दृश्य C++ रनटाइम 8.0 स्थापित है या नहीं?

इसका मतलब है कि मुझे या तो मेरे कस्टम कार्यों को निष्पादन अनुक्रम में निष्पादित करना होगा (अवांछित, चूंकि कुछ गलत होने पर इंस्टॉलेशन को इस अनुक्रम के दौरान वापस नहीं किया जा सकता है) या मेरे इंस्टॉलेशन से पहले Visual C++ रनटाइम इंस्टॉल करें एक InstallShield पूर्वापेक्षा का उपयोग कर।

मैं विजुअल सी ++ रनटाइम को एक शर्त के रूप में स्थापित करना पसंद करूंगा, लेकिन इसके लिए एक पूर्व शर्त इंस्टॉलशल्ड द्वारा प्रदान नहीं की गई है, इसलिए मुझे अपना खुद लिखना पड़ा। मैं रनटाइम को स्थापित करने के लिए पूर्व शर्त को कॉन्फ़िगर करने का तरीका समझने में सक्षम था, लेकिन मुझे नहीं पता कि यह कैसे निर्धारित किया जाए कि यह पहले से स्थापित है या नहीं। क्या कोई रजिस्ट्री कुंजी या फ़ाइल संस्करण है जिसे मैं निर्धारित करने के लिए जांच सकता हूं?

+0

विज़ुअल सी ++ 2010 रनटाइम का पता लगाने की कोशिश करने वाले किसी भी व्यक्ति के लिए, आप यहां अच्छे निर्देश प्राप्त कर सकते हैं: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx – ephere

उत्तर

10

मुझे ब्लॉग पोस्ट मिले जो Visual C++ Runtime 8.0 और Visual C++ Runtime 8.1 का पता लगाने का वर्णन करते हैं। असल में, आप प्रत्येक रनटाइम के लिए उत्पाद कोड देखने के लिए एमएसआई ऑटोमेशन इंटरफेस का उपयोग कर सकते हैं।

तुम भी HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ स्थापना रद्द करें \ [ProductCode] जहां [ProductCode] क्रम आप पता लगाने के लिए प्रयास कर रहे हैं उत्पाद कोड है (उदाहरण के लिए। {7299052b- के लिए दिखाई दे सकता है 02a4-4627-81f2-1818da5d550d} 8.0 sp1 रनटाइम के x86 संस्करण के लिए उत्पाद कोड है)।

ये विधियां केवल यह पता लगाने के लिए काम करती हैं कि रनटाइम पुनर्वितरण योग्य पैकेज स्थापित है या नहीं; यह संभव है कि रनटाइम स्थापित हो, भले ही ये विधियां ऐसा इंगित न करें (उदाहरण के लिए। यदि इसे पुनर्वितरण योग्य उपयोग करने के बजाए मर्ज मॉड्यूल के रूप में स्थापित किया गया था), लेकिन इस मामले में पुनर्वितरण योग्य पैकेज को स्थापित करने के लिए इसे किसी भी चीज़ को चोट नहीं पहुँचना चाहिए ।

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

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