2011-02-09 8 views
8

मैं VS2010 में InstallShield LE का उपयोग करके एक रोडब्लॉक में भाग रहा हूं। दूसरी बार है, जिसके परिणामस्वरूप setup.exe (वृद्धि संस्करण संख्याओं के साथ) चल रहा है, मैं त्रुटिइंस्टॉलशील्ड LE "इस उत्पाद का एक और संस्करण पहले ही पंजीकृत है"

इस उत्पाद का एक और संस्करण पहले से ही

पंजीकृत करके "बढ़ती संस्करण संख्या" है मिलता है, मेरा मतलब है मैं माइनर संस्करण बदल गया है, का निर्माण AssemblyVersion और मेरे .exe की AssemblyFileVersion में बड़ी संख्या में

[assembly: AssemblyVersion("0.2.103.005")] 
[assembly: AssemblyFileVersion("0.2.103.005")] 
[assembly: AssemblyInformationalVersion("Alpha 0.1 - 2/8/2011")] 

और भी उत्पाद संस्करण अद्यतन (DLL के "1.0। *" की तैयारी में हैं) करने के लिए संख्या और संशोधन 0.sh.0000 से 0.11.0000 तक Installshield LE सेटअप प्रोजेक्ट का सामान्य सूचना टैब।

मैं अन्य एसओ पोस्टिंग और निर्माता के सामुदायिक समर्थन मंच पर इस त्रुटि संदेश के उदाहरणों में आया था, लेकिन मुझे कोई समाधान नहीं मिला जो मुझे लागू होता है।

उत्तर

12

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

संपादित

(से @ lookatmike की टिप्पणी)

तुम भी सामान्य जानकारी टैब में उत्पाद संस्करण और (कुछ counterintuitively) उत्पाद कोड बदलना होगा। अपग्रेड कोड वही रहना चाहिए।

+2

एरिक, यह मेरे लिए काम नहीं किया। क्या आपने महत्व के कुछ और किया? मैं सामान्य सूचना टैब में उत्पाद संस्करण में वृद्धि कर रहा हूं, और मैंने पहले से स्थापित संस्करण को शामिल करने के बजाय एक विस्तृत न्यूनतम और अधिकतम संस्करण सीमा के साथ एक अपग्रेड पथ जोड़ा है। –

+2

उपरोक्त एरिक के स्वीकृत उत्तर पर विस्तार करने के लिए, अपग्रेड पथ को निर्दिष्ट करने के अलावा, आपको सामान्य जानकारी टैब में उत्पाद संस्करण और (कुछ हद तक counterintuitively) उत्पाद कोड को बदलना होगा। अपग्रेड कोड ** ** ** एक ही रहना चाहिए। –

+0

@lookatmike: धन्यवाद, मैंने आपकी टिप्पणी के साथ उत्तर अपडेट किया। मेरे जवाब को संपादित करने के लिए यह भी पूरी तरह से वैध है (मान लीजिए कि आपके पास ऐसा करने का प्रतिनिधि है)। –

6

ठीक है - यह समस्या मुझे क्रॉजी चला रही थी - और मुझे ऑनलाइन एक सही उत्तर नहीं मिला है।

तो मैंने फैसला किया कि मैं चारों ओर घूम रहा था।

यह समस्या को हल करने का "सबसे अच्छा" तरीका नहीं हो सकता है - मुझे यकीन है कि "इसे ठीक से संभालने" के कुछ ठोस एमएसआई-आधारित तरीके हैं लेकिन मुझे यह पता नहीं लगा सका (मुझे लगता है कि मैं हूं ? गूंगा)

मूल रूप से मेरी संस्थापक बस सुनिश्चित करें कि नेट स्थापित किया गया है बनाता है, और प्रोग्राम फ़ाइलें निर्देशिका में प्रतियां कुछ फाइलें, कुछ रजिस्ट्री प्रविष्टियाँ, शॉर्टकट, आदि

आप एक अधिक जटिल स्थापना प्रक्रिया है, तो कहते हैं - मैं आपको कहीं और "सही" उत्तर खोजने के लिए प्रोत्साहित करता हूं। लेकिन मुझे कुछ आसान मिला है (और मुझे संदेह है कि इस समस्या से जूझ रहे 95% लोग हैं) यह ठीक काम करता है।

पहले - कभी भी "उत्पाद कोड" स्पर्श न करें। मेरा मानना ​​है कि बोर्ड में एमएसआई के लिए यह सही प्रक्रिया है ... आपको उत्पाद कोड नहीं बदलना चाहिए। और यह समाधान उस पर निर्भर करता है।

अगला - उत्पाद क्लिप को अपने क्लिपबोर्ड पर कॉपी करें - हमें इसे एक सेकंड में आवश्यकता होगी।

असल में, हम हमेशा इंस्टॉल करने के लिए इंस्टॉलेशन शील्ड को बताने जा रहे हैं यदि यह मशीन पर पहले से मौजूद है।

enter image description here

enter image description here

अगर आप या आपके भागीदार कभी चलाने चुपचाप स्थापित - सुनिश्चित करें कि आप दोनों जगहों पर इस करते हैं:

enter image description here

"के लिए फ़ाइल नाम और कमांड लाइन ", दर्ज करें:

msiexec /uninstall {YOUR PRODUCT CODE HERE} /passive

यही है। अब आपका इंस्टॉलर हमेशा पुराने संस्करण को अनइंस्टॉल करेगा।

नोट: यह किसी भी प्रकार का खुलासा करता है "क्या मैं इंस्टॉलर का एक नया संस्करण चला रहा हूं" चेक।

+1

यह एक अच्छा ट्यूटोरियल है, लेकिन ऐसा लगता है कि यह इंस्टॉलशील्ड (आईएसएलई) के सीमित संस्करण संस्करण पर लागू नहीं होता है। कम से कम VS2012 के लिए, आपको "सिस्टम खोज से पहले" कस्टम क्रियाओं तक पहुंच प्राप्त करने के लिए इंस्टॉलशील्ड के भुगतान किए गए संस्करणों में से एक में अपग्रेड करना होगा। – jimtut

0

मैं अक्सर अपने विजुअल स्टूडियो परियोजनाओं का पुन: उपयोग करता हूं और यह समस्या प्राप्त करता हूं। के रूप में @ एरिक-j कहा कि मैं वी.एस. स्थापित सेटअप परियोजना के सामान्य जानकारी टैब में उत्पाद कोड बदलना पड़ा:

enter image description here

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