के बाद से कोई ऐसा करने के लिए नेट कोर में तंत्र में बनाया गया है, मैं अपने स्वयं के कस्टम समाधान को लागू करने समाप्त हो गया है। यह लगभग इस तरह काम करता है:
- चल रहा एप्लिकेशन डाउनलोड करता है और नए फ़ोल्डर में नई बाइनरी निकालता है।
- चल रहा एप्लिकेशन एक छोटी अद्यतनकर्ता प्रक्रिया शुरू करता है। चल रहे एप्लिकेशन
- चल रहे एप्लिकेशन के बाइनरी पथ
- डाउनलोड किया बाइनरी का मार्ग
- चल रहे एप्लिकेशन के
- प्रक्रिया आईडी: निम्नलिखित मानकों कमांड लाइन के माध्यम से अपडेटर प्रक्रिया को पारित कर रहे हैं खुद से निकलता है
- अद्यतनकर्ता प्रक्रिया तब तक प्रतीक्षा करती है जब तक चलने वाला एप्लिकेशन बाहर निकलता है (प्रक्रिया आईडी का उपयोग करके) या चलने वाले एप्लिकेशन को मजबूती से मारता है यदि वह किसी दिए गए टाइमआउट के भीतर स्वयं से बाहर नहीं निकलता है।
- अद्यतनकर्ता प्रक्रिया मौजूदा बाइनरी को हटा देती है और नई डाउनलोड की गई बाइनरी को प्रतिलिपि बनाता है।
- अद्यतनकर्ता प्रक्रिया मुख्य एप्लिकेशन के नए संस्करण को शुरू करती है।
सुनिश्चित करें कि आप मुख्य एप्लिकेशन (डाउनलोडिंग, अनपॅकिंग, सत्यापन, ...) में जितना संभव हो सके सुनिश्चित करें और अद्यतनकर्ता प्रक्रिया को यथासंभव सरल रखें (असफल होने का जोखिम कम करें)।
यह दृष्टिकोण काफी स्थिर साबित हुआ है।
स्रोत
2018-01-30 07:19:13
क्या आपको इसके लिए कोई काम मिल गया था? दुर्भाग्यवश, नेट कोर के लॉन्च होने के 2 साल बाद और ऐसा लगता है कि इसके लिए अभी भी कोई समर्थन नहीं है। मुझे भी इसी तरह की समस्या का सामना करना पड़ रहा है: https://stackoverflow.com/questions/47895998/asp-net-core-updating-or-publishing-new-dlls-without-stopping-the-plication –
क्या आपको इसके लिए समाधान मिला है? –
@ एमयू कृपया मेरा नया उत्तर देखें जहां मैं अब जिस समाधान का उपयोग कर रहा हूं उसका वर्णन करता हूं। –