2008-09-26 17 views
18

.NET WinForms एप्लिकेशन के लिए एक ऑटो अपडेटिंग सुविधा बनाते समय, यह DLL को कैसे अपडेट करता है और वर्तमान में चल रहे एप्लिकेशन को प्रभावित नहीं करता है?WinForms अनुप्रयोग के लिए ऑटो अपडेट

चूंकि एप्लिकेशन अद्यतन प्रक्रिया के दौरान चल रहा है, इसलिए डीएलएल पर लॉक नहीं होगा (क्योंकि उन डीएलएल को अद्यतन के दौरान ओवरराइट करना होगा)।

+0

[विंडोज़ एप्लिकेशन को स्वचालित अपडेट] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/4769615/automatic-update-a-windows- अनुप्रयोग) –

+4

@ पीटर मॉर्टेंसन वास्तव में एक प्रश्न पूछा गया था 2008 में एक प्रश्न का डुप्लिकेट 2011 में पूछा गया? विशेष रूप से जब ऐसा प्रतीत होता है कि इसमें बेहतर जानकारी – Kris

उत्तर

17

आमतौर पर आप नई फ़ाइलों को एक अलग क्षेत्र में डाउनलोड करेंगे। फिर शटडाउन और पुनरारंभ करें और स्टार्टअप पर आप पाए जाते हैं और नई फाइलों का उपयोग करते हैं। हमेशा एक आखिरी ज्ञात वर्किंग वर्जन को तरफ रखें ताकि उपयोगकर्ता उस चीज़ पर वापस लौट सके जो डाउनलोड करता है अगर डाउनलोड समस्याएं पैदा करता है।

ClickOnce है कि आप के लिए यह करता है Microsoft से एक अच्छा प्रौद्योगिकी है और आप को विजुअल स्टूडियो 2008

+0

है तो अद्यतनकर्ता ऐप ब्लॉक के बजाय एक बार क्लिक करें? –

+0

आप दोनों को देख सकते हैं और यह तय कर सकते हैं कि आपके लिए कौन सा सबसे अच्छा काम करता है। क्लिकऑन बस बॉक्स से बाहर काम करता है लेकिन आपके पास सीमित नियंत्रण है। अपडेटर एप्लिकेशन ब्लॉक का उपयोग करना अधिक प्रयास करता है लेकिन आपके पास अधिक नियंत्रण होता है क्योंकि आप हमेशा स्रोत कोड बदल सकते हैं। –

4

से सीधे उपयोग कर सकते हैं आप ClickOnce के माध्यम से प्रकाशित करते हैं, यह सब आप के लिए नियंत्रित किया जाता है। यह अपने स्वयं के प्रो और कॉन है लेकिन आमतौर पर इसे स्वयं कोड करने की कोशिश करने से आसान है।

दोनों Wikipedia और 15seconds ClickOnce का उपयोग कर, यह कैसे काम करता है, आदि

दूसरों के रूप में कहा है, ClickOnce अपने स्वयं के समाधान रोलिंग के रूप में के रूप में लचीला नहीं है बल्कि यह एक बहुत कम जटिल है पर सभ्य जानकारी है। इसमें पहले एक छोटा सा सीखने वाला वक्र है, लेकिन विजुअल स्टूडियो में बंडल किए गए सब कुछ और विज़ार्ड के उपयोग के साथ, आमतौर पर इसे एक समाधान समाधान पर ठोकर नहीं लगती है।

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

एकमात्र कारण मैं कस्टम संस्थापक से बचने की कोशिश है कि आप इसे सिर्फ सही अलग "क्या होगा अगर" परिदृश्यों का एक समूह को संभालने के लिए प्राप्त करने की कोशिश खर्च रास्ता बहुत अधिक समय खत्म हो गया है ...

5

मैं एक अलग 'लॉन्चर' एप्लिकेशन है जो वेब सेवा के माध्यम से अद्यतनों की जांच करता है। यदि अपडेट हैं, तो यह उन्हें डाउनलोड करता है और फिर मेरे आवेदन को निष्पादित करता है, जो एक अलग असेंबली में है।

अन्य विकल्प क्लिकऑन जैसे चीजों का उपयोग कर रहे हैं, या फ़ाइलों को एक अलग क्षेत्र में डाउनलोड कर रहे हैं और ऐप को पुनरारंभ कर रहे हैं, जैसा कि किसी और ने उल्लेख किया है।

क्लिकऑन के बारे में चेतावनी दीजिये, हालांकि - यह उतना लचीला नहीं है जितना लगता है। और यदि आप किसी ऐसे सिस्टम पर तैनात हैं जिसके लिए आपके प्रोग्राम को एक उच्च सुरक्षा स्तर पर चलाने की आवश्यकता है, तो यदि आपके पास अपने ऐप के लिए प्रमाणपत्र नहीं है तो आप समस्याओं में भाग ले सकते हैं। जब मुझे ClickOnce की बात आती है तो मुझे प्रमाण पत्र प्रबंधन जैसी चीजों के लिए इंटरनेट पर सीधे जवाब प्राप्त करना बहुत मुश्किल लगता है। यदि आपके पास एक जटिल ऐप है, तो आप केवल अपना खुद का अपडेटर रोल करना चाहते हैं, जो मैंने किया है।

+0

अद्यतनों की जांच के लिए वेब सेवा का उपयोग क्यों करें? वेब क्लाइंट तेज नहीं है? –

7

आपको अपने एप्लिकेशन को बंद करना होगा और इसे पुनरारंभ करना होगा, क्योंकि अन्य लोगों ने पहले से ही टिप्पणी की है।

मैंने एक वास्तविक स्रोत में ऐसा करने के लिए एक ओपन-सोर्स कोड लिखा - वास्तविक शीत अद्यतन करने के लिए बाहरी अद्यतन एप्लिकेशन सहित। http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

कोड http://github.com/synhershko/NAppUpdate पर है (अपाचे 2 के तहत लाइसेंस प्राप्त है।0 लाइसेंस)

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