2010-04-10 13 views
10

मैं अपने आवेदन के लिए एक पैचिंग दिनचर्या बनाने की जरूरत, यह वास्तव में छोटे है, लेकिन मैं इसे दैनिक अद्यतन करने के लिए या साप्ताहिक कैसे xdelta और दूसरों काम करता है की आवश्यकता है? मैं उन के बारे में चारों ओर पढ़ा है लेकिन मैं इसे की ज्यादा समझ में नहीं आया उपयोगकर्ता सभीपैच एक आवेदन

+1

लक्ष्य प्लेटफ़ॉर्म क्या है? – wallyk

+1

आपको योजनाबद्ध उपयोग के मामले को स्पष्ट करना चाहिए। आपको बाइनरी एप्लिकेशन को पैच (रीडाउनलोड नहीं) करने की आवश्यकता है? आपको निश्चित रूप से फिर से लोड करने के लिए यह आसान लगेगा, और यह एक विकल्प हो सकता है, क्योंकि आप कहते हैं कि यह छोटा है। –

+0

विंडोज़ लेकिन मैं इसे अपने मुख्य प्रोग्राम में बाहरी प्रोग्राम का उपयोग किए बिना जोड़ना चाहता हूं, इसलिए यह उपयोगकर्ता को – user302823

उत्तर

1

ठीक है इस पोस्ट को दिए गए उत्तरों के लिए मेटा पर फ़्लैग किया गया है, इसलिए मैं इस पर वजन करने जा रहा हूं।

xdelta एक बाइनरी अंतर प्रोग्राम है जो आपको एक पूर्ण छवि प्रदान करने के बजाय, केवल आपको बताता है कि क्या बदल गया है और कहां है। टेक्स्ट डिफ के एक उदाहरण में टेक्स्ट की पंक्तियों से पहले + और - संकेत होंगे जो आपको दिखाएंगे कि इन्हें नए संस्करण में जोड़ा या हटा दिया गया है।

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

आप नहीं कर रहे हैं फिर भी, आप को ध्यान में रखना निम्नलिखित की आवश्यकता होगी, तो:

  • आप के रूप में अन्य लोगों ने कहा कुछ फ़ोल्डर में कुछ भी अद्यतन करने के लिए एक प्रशासक की जरूरत है। मैं दृढ़ता से आपको इस व्यवहार को स्वीकार करने के लिए प्रोत्साहित करता हूं।
  • यदि उपयोगकर्ता एक व्यवस्थापक है, तो आप अपडेट की जांच कर सकते हैं। फिर, आप दो चीजों में से एक कर सकते हैं। आप अपने आवेदन का एक नया संस्करण डाउनलोड कर सकते हैं और इसे हार्ड डिस्क पर छवि पर लिख सकते हैं (यानी फ़ाइल - याद रखें छवियों को स्मृति में लोड किया गया है ताकि आप अपनी प्रोग्राम फ़ाइल को फिर से लिख सकें)। इसके बाद आपको उपयोगकर्ता को यह बताने की जरूरत है कि अपडेट सफल हो गया है और प्रोग्राम को फिर से लोड कर दिया गया है क्योंकि नई छवि अलग होगी।
  • या, यदि बैंडविड्थ चिंता का विषय है तो आप एक diff लागू कर सकते हैं। शायद आपके मामले में नहीं, लेकिन आपको क्लाइंट प्रोग्राम से दो संस्करणों के बीच अंतर करने की आवश्यकता होगी ताकि अपडेट सर्वर आपको सही पैच दे। अन्यथा, diff सफल नहीं हो सकता है।

मुझे आपके उद्देश्यों के बारे में नहीं लगता है xdelta आपको वैसे भी बहुत लाभ प्रदान करने जा रहा है। बस पूरी छवि को प्रतिस्थापित करें।

संपादित करें यदि उपयोगकर्ता को बिल्कुल संकेत नहीं दिया जाना चाहिए, बस ऐप को पुनः लोड करें। हालांकि, मैं उस उपयोगकर्ता को सूचित करने के लिए दृढ़ता से प्रोत्साहित करता हूं कि आप अपने नेटवर्क पर बात कर रहे हैं और मैन्युअल अपडेट मोड को सक्षम/सक्षम करने की अनुमति मांगते हैं, अन्यथा मेरे जैसे लोग इसे अवरुद्ध करेंगे।

-1

पर संकेत नहीं दिया जाना चाहिए आप अपने समारोह एक अलग DLL में रहते हैं कर सकते हैं। तो आप पूरे कार्यक्रम को पैच करने के बजाय डीएलएल को प्रतिस्थापित कर सकते हैं। (विंडोज़ को सी # प्रोग्राम के लिए लक्षित प्लेटफ़ॉर्म के रूप में मानना।)

+0

मेरा बिंदु मुख्य रूप से सीखना था कि पैचिंग भविष्य के उपयोग के लिए कैसे काम करती है – user302823

1

यह किस प्रकार का एप्लिकेशन है? शायद आप अपने आवेदन को तैनात करने के लिए clickonce का उपयोग कर सकते हैं। Clickonce बहुत आसानी से आप अपने उपयोगकर्ताओं को अद्यतन धक्का देने की अनुमति देता है।

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

उस ने कहा, क्लिकऑन आपको वास्तविक स्थापना प्रक्रिया पर थोड़ा नियंत्रण के साथ छोड़ देता है, और आपके पास अपनी खुद की .msi बनाने की स्वतंत्रता के करीब कहीं नहीं है।

+0

इसके अलावा, प्रमाण पत्र के बिना, एक दुष्ट उपयोगकर्ता सैद्धांतिक रूप से दुर्भावनापूर्ण कोड शामिल कर सकता है। –

+0

सी # डोमेन में कोई बुरा विचार नहीं है, मुझे यह पसंद है, +1। –

0

आपके आवेदन के आकार के आधार पर, शायद आप इसे कई डीएल, एक्सई और अन्य फाइलों में विभाजित कर लेंगे।

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

यदि आपका आवेदन छोटा है (कहें, एक एकल exe) तो यह केवल एक एक्सई को प्रतिस्थापित करने के लिए पर्याप्त होगा।


संपादित करें:

(नई exe के संकलन पर) यह करने के लिए किया जाएगा एक और तरीका है, पुराने एक के लिए नया एक की तुलना, और सिर्फ अपडेटर पर अधिक मतभेद भेजें। यह उचित समायोजन करेगा।

1

मैं पैचिंग समाधान के साथ नहीं जाऊंगा, क्योंकि जब आपके पास बहुत सारे संशोधन होते हैं तो यह वास्तव में चीजों को जटिल करता है। पैचिंग समाधान कैसे अपडेट किए जाने वाले विभिन्न संस्करणों को संभालेगा? क्या होगा यदि उपयोगकर्ता ए वर्तमान संशोधन के पीछे 10 संशोधन है? या 100 संशोधन, आदि? यह शायद नवीनतम एक्सई (एस) और डीएलएल डाउनलोड करने और उन्हें बदलने के लिए सबसे अच्छा होगा।

उसने कहा, मुझे लगता है कि this SO question on silent updates आपकी मदद कर सकता है।

+0

+1, मैं सादगी के लिए सहमत हूं क्योंकि यह एक अच्छा विचार है। –

+0

हाँ, लेकिन मेरा मुद्दा चीजों को सरल बनाना नहीं है, मैं इसे भविष्य में उपयोग के लिए करना सीखना चाहता हूं, जबकि मैं पर हूं, अगर एप्लिकेशन अद्यतित नहीं है तो यह पूरी तरह से फिर से डाउनलोड हो जाएगा – user302823

1

कुशल पैचिंग के लिए एक समाधान है - यह सभी प्लेटफॉर्म पर काम करता है और उपयोगकर्ता को कुछ भी ध्यान देने के बिना पूरी तरह से चुप मोड में चला सकता है। .NET पर, यह आपके यूआई से घटनाओं के लिए घोषित कस्टम UserControl का उपयोग करके अद्यतन प्रक्रिया के seamless integration प्रदान करता है।

इसे wyUpdate कहा जाता है।

जबकि अद्यतन क्लाइंट (wyUpdate) खुला स्रोत है, wybuild tool के लिए भुगतान पैच बनाने और प्रकाशित करने के लिए किया जाता है।

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