हमारे पास न्यूनतम 'अपडेटर' exe है जो अद्यतनों के लिए एक दूरस्थ यूआरएल जांचता है, उन्हें डाउनलोड करता है और वास्तविक एप्लिकेशन लॉन्च करने से पहले डिस्क पर फ़ाइलों को प्रतिस्थापित करता है। हालांकि अगर हम अद्यतनकर्ता EXE को प्रतिस्थापित करना चाहते हैं तो AFAIK हमारे पास दो विकल्प हैं:स्व-अद्यतन सॉफ्टवेयर को लागू करने के लिए सर्वोत्तम विधि
1) Shadow Copying Assemblies जिससे नेट .NE (और किसी भी संदर्भित असेंबली) की छाया प्रतिलिपि बनाएगा और उन असेंबली को लोड करेगा, जैसे गैर- छाया असेंबली को प्रतिस्थापित किया जा सकता है और जब एप्लिकेशन को लॉन्च किया जाता है तो इसका उपयोग किया जाएगा।
2) पहचानें कि कौन सी फाइलें प्रतिस्थापित की गई हैं और उन्हें नाम पर बदलें/स्थानांतरित करें। विंडोज लॉक की गई फाइलों के नामकरण/चलने की अनुमति देता है, इसलिए हम फ़ाइलों को स्थानांतरित कर सकते हैं और नई असेंबली में कॉपी कर सकते हैं। फिर, आवेदन को लॉन्च करने पर हम नई असेंबली लॉन्च करेंगे। इस दृष्टिकोण का उल्लेख here
क्या यह दूसरी विधि एक अनुशंसित विधि है? क्या इस दृष्टिकोण के लिए कोई नुकसान है?
में टिप्पणी के लिए –
हम अभी क्लिकऑन का उपयोग नहीं कर रहे हैं क्योंकि मेरे द्वारा वर्णित फाइल कॉपीिंग विधि का उपयोग करना आसान था, और हमारे पास एप्लिकेशन के साथ स्थापित SQL डेटाबेस के लिए कटऑमिज्ड अपडेट प्रक्रिया भी है। हालांकि क्लिकऑन आधिकारिक माइक्रोसॉफ्ट समाधान है और हम भविष्य में उपयोग के लिए एक नजर में अधिक देखेंगे, इसलिए मैं इसे स्वीकृत उत्तर के रूप में चुन रहा हूं। धन्यवाद। – redcalx
क्लिकऑन एक दुःस्वप्न है क्योंकि यह लचीला, अत्यधिक जटिल है, ऐसा लगता है कि कोई मजबूत माइक्रोसॉफ्ट समर्थन नहीं है, और प्रति उपयोगकर्ता तैनाती परिदृश्यों के लिए बहुत विशिष्ट है। – jpierson