2009-11-16 12 views
9

आपको लगता है कि मशीनों की एक बड़ी संख्या पर स्थापित है एक Winforms एप्लिकेशन है, तो वहाँ एक स्वत: नवीनीकरण समारोह को लागू करने के लिए एक मानक तरीका है?क्या .NET Winforms ऐप्स को स्वतः अपग्रेड करने का कोई मानक तरीका है?

उदा। प्रत्येक बार जब यह शुरू होता है, तो यह एक वेबसाइट या वेब सेवा की जांच करता है और यदि कोई नया संस्करण उपलब्ध है, तो यह डाउनलोड और इंस्टॉल करता है?

मैं यह पता लगाने सकता है कि यह कैसे की मेरे अपने संस्करण रोल करने के लिए, लेकिन मैं सोच रहा हूँ अगर वहाँ जगह इस के साथ मदद करने के लिए पहले से ही किसी भी व्यवस्थाएं हैं।

+0

हम इसी तरह के सवाल पहले से ही है, लेकिन यह अच्छी तरह से समझाया ;-) – Shoban

उत्तर

9

ClickOnce जवाब पर +1, लेकिन मैं उस पर कुछ टिप्पणियों के साथ बनाना चाहते थे:

आम तौर पर, जब कोई पहली से शुरू होती है ClickOnce को देखकर उन्हें पता चलता है कि यह बातें करने के नए प्रतिबंध के एक नंबर कहते हैं कि उनके ऐप को करने की अनुमति है। वे लगभग हमेशा इनमें से कम से कम एक का उल्लंघन करते हैं और यह घोषणा करते हुए वापस आते हैं कि ClickOnce उनके लिए काम नहीं करता है क्योंकि x, y, और z अब और काम नहीं करेंगे।

यह अनुमान लगाना एक बार फिर मामला होगा, मैं इन प्रतिबंधों के लिए एक तर्क को समझाने के लिए एक पल लेना चाहता हूं और आप अपने ऐप को अपने स्वयं के अपडेट सिस्टम लिखने के बजाय क्यों काम करना चाहते हैं, एक विकल्प के साथ जाओ।

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

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

  • अद्यतन समय में आपके पास व्यवस्थापक पहुंच रन टाइम पर

    1. व्यवस्थापक पहुँच की

    कभी-कभी यह स्पष्ट नहीं है कि आपको उस पहुंच की आवश्यकता है या आपको उस पहुंच की आवश्यकता क्यों है, लेकिन अंत में यह आमतौर पर नीचे आता है। सिस्टम फाइल के साथ सिस्टम के साथ एक डीएल रजिस्टर करना चाहते हैं या फ़ाइल फाइल फ़ोल्डर में अद्यतन करना चाहते हैं? इसके लिए डिफ़ॉल्ट रूप से व्यवस्थापक पहुंच की आवश्यकता होती है। विंडोज़ सेवा को स्थापित या अपडेट करने की आवश्यकता है? प्रशासक का उपयोग किसी तृतीय पक्ष घटक के लिए एक एमएसआई इंस्टॉलर चलाने के लिए चाहते हैं? एमएसआई चलाने के लिए आपको व्यवस्थापकीय विशेषाधिकारों की आवश्यकता है। एक टीसीपी बंदरगाह पर सुनना चाहते हैं? तुम्हें नया तरीका मिल गया है।

    अंत में, आपका लक्ष्य यह बनाना है कि यहां तक ​​कि केवल मानक विशेषाधिकार वाले उपयोगकर्ता भी आपके ऐप को स्वचालित रूप से अपडेट कर सकेंगे ... यहां तक ​​कि पारदर्शी रूप से भी। अन्यथा, आपको प्रत्येक तैनाती के साथ अतिरिक्त आईटी कर्मचारियों की आवश्यकता है। यह एक अच्छा विचार है भले ही आपका कार्यक्रम जनता के लिए बड़ा हो; यह आपको समर्थन मुद्दे के एक निश्चित वर्ग से बचने में मदद करेगा। एक वैकल्पिक तैनाती प्रणाली के साथ जाकर यह नहीं बदलेगा। वे सिस्टम आमतौर पर उपभोक्ता मशीनों पर लक्षित होते हैं जहां अधिकांश उपयोगकर्ता प्रशासक के रूप में चलते हैं और इसलिए मुद्दों के बारे में बहुत कम हैं।

  • +1

    हाय जोएल, क्या क्लिकऑन का उपयोग उन्नयन के लिए पुश मॉडल को लागू करने के लिए किया जाता है। मैंने संगठन में हमारे ऐप को तैनात करने के लिए क्लिकऑन का उपयोग किया है और ग्राहकों को अपडेट प्राप्त करने के लिए एप्लिकेशन चलाया जाना था। क्या क्लाइंट इंटरैक्शन के बिना सर्वर से अपडेट भेजने के लिए कोई एपीआई उपलब्ध है (मान लीजिए कि सभी क्लाइंट नेटवर्क से हर समय जुड़े हुए हैं) – theraneman

    +2

    @Theraneman: ClickOnce यह सुनिश्चित कर सकता है कि प्रत्येक बार यह चलने पर एक ऐप अद्यतित हो। इससे कोई फर्क नहीं पड़ता कि क्या ऐप कुछ दिनों से बाहर है यदि उपयोगकर्ता ने इसे नहीं चलाया है? –

    +0

    क्लिकऑन को एप्लिकेशन की सुरक्षा के साथ कोई समस्या है। वेब सर्वर पक्ष पर फ़ाइलों को तैनात करें। इसे कॉरपोरेट लैन में विंडोज प्रमाणीकरण से दूर किया जा सकता है लेकिन सार्वजनिक इंटरनेट पर इसे केवल क्लाइंट साइड प्रॉक्सी से ही हटाया जा सकता है। http://msdn.microsoft.com/en-us/library/aa480721.aspx#adminc_topic10 "क्लिकऑन परिनियोजन का प्रशासन" देखें। प्रॉक्सी के माध्यम से प्रमाणन पर बाद में लेख भी रहे हैं। http://bronumski.blogspot.com/2009/06/clickonce-updates-via-authentication.html –

    7

    आप ClickOnce बाहर की कोशिश करना चाहते हो सकता है, मुझे लगता है कि उस के साथ संभव है।

    +0

    मुझे लगता है कि है तो भी .... –

    +0

    हाँ, आप ClickOnce – hminaya

    +0

    ClickOnce के साथ निश्चित रूप से संभव के साथ ऐसा कर सकते हैं - हम किसी भी बड़े पर यह शुरू नहीं किया है पैमाने पर, लेकिन काफी सीमित दायरे में यह बहुत अच्छी तरह से काम किया। – Murph

    2

    Microsoft Updater Application Block पर एक नजर डालें।

    +1

    दिलचस्प लगता है - क्या क्लिकऑन द्वारा प्रतिस्थापित किया गया था या क्या यह कुछ अलग करने का लक्ष्य रख रहा है? – codeulike

    +0

    मैं 100% नहीं हूं, लेकिन मुझे लगता है कि यह पुराना है। कम से कम, इसे बाईं ओर के पेड़ में "सेवानिवृत्त" के रूप में सूचीबद्ध किया गया है, इसे नेट 1.1 पर लक्षित किया गया है, और "अपडेट को स्वचालित रूप से डाउनलोड करने के लिए आपको पुल मॉडल को लागू करने में मदद करता है" जहां मुझे संदेह है कि आपको वास्तव में "पुश" मॉडल की आवश्यकता है। –

    1

    मैं अंत में

    पर मुक्त स्रोत 'Conversive तीव्र AutoUpdater' का इस्तेमाल किया

    http://csautoupdater.sourceforge.net/

    तीव्र AutoUpdater एक सी # घटक है कि स्वचालित रूप से आपके .NET अनुप्रयोग अपडेट कर देगा। एक्सएमएल कॉन्फ़िगरेशन फ़ाइलों का उपयोग करते हुए, ऑटो अपडेटेटर घटक यह पता लगाता है कि सॉफ़्टवेयर का एक नया संस्करण है, डाउनलोड, अनजिप, और नई फाइलें इंस्टॉल करता है।

    यह काफी सरल है - यह एक ज़िप डाउनलोड करता है और इंस्टॉल किए गए ऐप पर इसे अनजिप करता है - लेकिन यह अच्छी तरह से काम करता है और खुद को लिखने से आसान था। मुझे नहीं लगता कि यह चीजों को बहुत अच्छी तरह से संभालता है अगर उपयोगकर्ताओं के पास उनके प्रोग्राम फाइल फ़ोल्डर में व्यवस्थापक पहुंच नहीं है।

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

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