2009-06-22 7 views
5

मेरे पास एक विजुअल स्टूडियो के साथ पहले से बनाए गए इंस्टॉलर (.msi) के साथ एक विंडोज फॉर्म एप्लिकेशन है। अब मैं प्रस्तुति 2.RemovePreviousVersions संपत्ति के साथ संस्करण 2.0 के लिए एक नया इंस्टॉलर बना रहा हूं।क्या हम मौजूदा फ़ाइलों को पुनः स्थापित करने के लिए विजुअल स्टूडियो सेटअप को निर्देशित कर सकते हैं?

अब

, जब मैं स्थापित 2.0 1.0 से अधिक यह 1.0 दूर करता है और पूरी तरह से 2.0 स्थापित करता है।

वहाँ एक रास्ता है कि मैं संस्थापक बता सकते हैं तो उन्हें ओवरराइड नहीं करें (.xml डेटा के लिए उपयोग की गई फ़ाइलों की तरह) पहले से ही स्थापित कुछ फ़ाइलों को पाते हैं है?

मैं अपने 2.0 संस्थापक है करने के लिए कोशिश कर रहा हूँ 2 प्रयोजनों की सेवा:

  • नए उपयोगकर्ताओं
  • मौजूदा उपयोगकर्ताओं को अपग्रेड कर देगा के लिए खरोंच से स्थापित करें लेकिन उनके अनुकूलन

उत्तर

2

जब मैं था खोना नहीं एक ऐसी ही स्थिति मैं क्या किया था:

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

फ़ाइलों को स्थिर थे (जैसे डेटा कि Dropdownlists पॉप्युलेट करने के लिए इस्तेमाल किया गया था) मैं एमएसआई में शामिल है और मैं दृश्य स्टूडियो के साथ एक नया एमएसआई का निर्माण करके उन अद्यतन कर सकते हैं।

मूल रूप से अपने MSI परियोजना में अनुकूलन फ़ाइलें शामिल नहीं हैं। उन्हें नए उपयोगकर्ताओं के लिए कोड में बनाएं।

मैं कुछ फ़ाइलों कि MSI फ़ाइल में शामिल हैं अद्यतन करने के लिए नहीं कह रहा एमएसआई में कभी नहीं देखा। जिस समाधान के साथ मैं आया था वह मेरे लिए बिल्कुल सही था। मुझे नहीं पता कि यह किया जा सकता है या नहीं।

मुझे उम्मीद है कि इससे मदद मिलती है।

13

वीएस में तैनाती परियोजना फाइलों को ओवरराइट नहीं करती है। क्या होता है कि चूंकि आपके पास RemovePreviousVersions सत्य पर सेट हैं, जब आप सेटअप प्रोग्राम के अपने प्रोग्राम फ़ाइल संस्करण और ProductCode GUID को बदलते हैं, तो यह पहले पिछले संस्करण को अनइंस्टॉल करेगा और फिर नए संस्करण का क्लीन इंस्टॉल करेगा।

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

चीयर्स

[संपादित करें] ऊपर वी.एस. 2008 SP1 के लिए सच है हेवन ' टी ने अन्य संस्करणों पर इसका प्रयास नहीं किया, इसलिए उम्मीद है कि आप एक ही वीएस संस्करण का उपयोग कर रहे हैं या यह आपके द्वारा उपयोग किए जाने वाले संस्करण के लिए काम करता है।

[संपादित करें] ओह, आप कुछ सिमिल प्राप्त करने के लिए "हालत" संपत्ति का भी उपयोग कर सकते हैं ए आर। यदि आप ऐसा करते हैं, तो सुनिश्चित करें कि "ट्रांजिटिव" सत्य पर सेट है, इसलिए स्थिति हमेशा मूल्यांकन की जाती है। शर्तों के साथ कोशिश नहीं की है, लेकिन यह एक और विकल्प है जिसे आप देख सकते हैं। इन 2 के अलावा, मुझे लगता है कि वीएस तैनाती परियोजनाओं के लिए यह काफी है।

+0

ग्रेट, धन्यवाद! इसे उत्तर के रूप में चिह्नित किया जाना चाहिए। –

+1

फ़ाइल प्रतिस्थापन के नियम [यहां] हैं (http://msdn.microsoft.com/en-us/library/aa370531(v=VS.85).aspx)। – CyberMonk

+0

वीएस -2010 एसपी 1 का उपयोग करना। यह मेरे लिए काम नहीं कर रहा है ... फ़ाइल को प्रतिस्थापित किया गया है भले ही पर्मनेट सत्य पर सेट हो !!! यह तब बदला जाता है जब डिस्क पर फ़ाइल का दिनांक/समय पैकेज निर्माण के दिनांक समय से पुराना होता है। वीएस -2010 में एसपी 1 नहीं, यह तब बदला गया जब डिस्क पर फ़ाइल का दिनांक समय पुराना था, फिर पैकेज बनाने के लिए उपयोग की जाने वाली फ़ाइल का दिनांक समय। 01/01/2001 को स्रोत फ़ाइल के दिनांक समय को सेट करने से मुझे कई परेशानी हल हुईं, लेकिन यह अब और काम नहीं कर रही है !!! –

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