2017-03-14 7 views
5

के साथ स्व-अद्यतन/छाया-प्रतिलिपि मैं एक Asp.Net कोर एप्लिकेशन लिख रहा हूं जो स्वयं को अपडेट करने में सक्षम होना चाहिए (चलते समय अपनी बाइनरी को प्रतिस्थापित करें)।Asp.Net Core

This MSDN article शास्त्रीय .Net ढांचे के साथ छाया प्रतिलिपि का वर्णन करता है, जो वास्तव में मुझे चाहिए। लेकिन नेट ऐप में पूरी ऐपडोमेन चीज गायब है।

तो मेरी प्रश्न हैं:

  • वहाँ नेट कोर में एक वैकल्पिक तरीका विधानसभाओं को कॉपी छाया सक्षम करने के लिए है?
  • क्या नेट कोर में अन्य तंत्र हैं जो एक स्व-अद्यतन आवेदन बनाने की अनुमति देते हैं?
+0

क्या आपको इसके लिए कोई काम मिल गया था? दुर्भाग्यवश, नेट कोर के लॉन्च होने के 2 साल बाद और ऐसा लगता है कि इसके लिए अभी भी कोई समर्थन नहीं है। मुझे भी इसी तरह की समस्या का सामना करना पड़ रहा है: https://stackoverflow.com/questions/47895998/asp-net-core-updating-or-publishing-new-dlls-without-stopping-the-plication –

+0

क्या आपको इसके लिए समाधान मिला है? –

+0

@ एमयू कृपया मेरा नया उत्तर देखें जहां मैं अब जिस समाधान का उपयोग कर रहा हूं उसका वर्णन करता हूं। –

उत्तर

1

के बाद से कोई ऐसा करने के लिए नेट कोर में तंत्र में बनाया गया है, मैं अपने स्वयं के कस्टम समाधान को लागू करने समाप्त हो गया है। यह लगभग इस तरह काम करता है:

  1. चल रहा एप्लिकेशन डाउनलोड करता है और नए फ़ोल्डर में नई बाइनरी निकालता है।
  2. चल रहा एप्लिकेशन एक छोटी अद्यतनकर्ता प्रक्रिया शुरू करता है। चल रहे एप्लिकेशन
  3. चल रहे एप्लिकेशन के बाइनरी पथ
  4. डाउनलोड किया बाइनरी का मार्ग
  5. चल रहे एप्लिकेशन के
    • प्रक्रिया आईडी: निम्नलिखित मानकों कमांड लाइन के माध्यम से अपडेटर प्रक्रिया को पारित कर रहे हैं खुद से निकलता है
    • अद्यतनकर्ता प्रक्रिया तब तक प्रतीक्षा करती है जब तक चलने वाला एप्लिकेशन बाहर निकलता है (प्रक्रिया आईडी का उपयोग करके) या चलने वाले एप्लिकेशन को मजबूती से मारता है यदि वह किसी दिए गए टाइमआउट के भीतर स्वयं से बाहर नहीं निकलता है।
    • अद्यतनकर्ता प्रक्रिया मौजूदा बाइनरी को हटा देती है और नई डाउनलोड की गई बाइनरी को प्रतिलिपि बनाता है।
    • अद्यतनकर्ता प्रक्रिया मुख्य एप्लिकेशन के नए संस्करण को शुरू करती है।

सुनिश्चित करें कि आप मुख्य एप्लिकेशन (डाउनलोडिंग, अनपॅकिंग, सत्यापन, ...) में जितना संभव हो सके सुनिश्चित करें और अद्यतनकर्ता प्रक्रिया को यथासंभव सरल रखें (असफल होने का जोखिम कम करें)।

यह दृष्टिकोण काफी स्थिर साबित हुआ है।

4

नेट कोर में छाया नकल की सुविधा में कोई निर्माण