2012-03-02 14 views
6

कैप्टिव रनटाइम के साथ एआईआर अनुप्रयोग के लिए तंत्र को अद्यतन करने का तर्क क्या होगा? एप्लिकेशन विंडोज और मैक के लिए वितरित किया जाना चाहिए।कैप्टिव रनटाइम के साथ बंडल किए गए एआईआर एप्लिकेशन के लिए अद्यतनकर्ता कैसे बनाएं?

मैं यहाँ अटक गया:

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

में इसे पढ़ने के बाद: एप्लिकेशन को शुरू करते ही

  1. , के लिए जाँच: http://www.adobe.com/devnet/air/articles/air3-install-and-deployment-options.html

    इसे पसंद (Windows के लिए, के बाद एप्लिकेशन कुछ .exe या .msi इंस्टालर के साथ स्थापित किया गया है) कुछ है नए संस्करण

  2. अगर वहाँ नया संस्करण है, इसे डाउनलोड
  3. अधिलेखित मौजूदा अनुप्रयोग फ़ाइलें और आकाशवाणी क्रम फ़ाइलों

ऐप शुरू करने से पहले इसे जबरन अपडेट किया जाना चाहिए।

रनिंग ऐप को ओवरराइट कैसे करें? या फ़ाइलों को बदलने के लिए एक और ऐप (अद्यतनकर्ता) बनाने के लिए, और उसके बाद नेटिवप्रोसेस के साथ मुख्य ऐप शुरू करें?

उत्तर

0

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

+0

माफ करना, मैं डाल नहीं था : ऐप शुरू करने से पहले इसे मजबूर किया जाना चाहिए। मुझे नहीं पता कि मैं आपका जवाब समझता हूं ... यह कैप्टिव रनटाइम है, मैं एआईआर अपडेट फ्रेमवर्क का उपयोग नहीं कर सकता। – Nemi

2

मूल रूप से, आप जो सर्वर पर की तरह नवीनतम संस्करण संख्या, नई फ़ाइलें के लिए पथ बातें शामिल होंगे अपने सर्वर पर कुछ एक्सएमएल फ़ाइल के लिए अपने app बिंदु होना चाहिए आदि

आप पुनः आरंभ करने के लिए एक अलग एप्लिकेशन का उपयोग कर सकते हैं लेकिन ध्यान रखें कि चूंकि आप कैप्टिव रनटाइम का उपयोग कर रहे हैं, इसका मतलब केवल अपडेटर के लिए 40-60 एमबी होगा (जब तक कि आप कुछ गैर अनुशंसित हैक्स का उपयोग न करें)।

यह शायद बेहतर हो केवल आपके अपडेट को डाउनलोड करने के बाद पुन: प्रारंभ करने के लिए संकेत करने के लिए होगा।

चाल EXE को ओवरराइट नहीं करना है, बल्कि इसके बजाय एसडब्ल्यूएफ (और अपडेट करने की आवश्यकता वाली किसी भी अन्य फाइल) को ओवरराइट करना है। जो मैं बता सकता हूं, एक्सईई एक्सएमएल मैनिफेस्ट और एसडब्ल्यूएफ के लिए बस एक सूचक है।

आपको हर बार एआईआर रनटाइम्स फ़ाइल अपडेट नहीं करना चाहिए - केवल महत्वपूर्ण अपडेट के लिए (क्योंकि वे बड़ी फाइलें हैं)।

+0

धन्यवाद, इसलिए ऐप को स्वचालित रूप से पुनरारंभ करने का कोई तरीका नहीं है? – Nemi

+0

@ नीमी: जैसा कि मैंने कहा था, आप पुनरारंभ करने के लिए एक और कैप्टिव रनटाइम ऐप का उपयोग कर सकते हैं लेकिन आपकी स्थिति के आधार पर अतिरिक्त 40-60MB के लायक नहीं हो सकते हैं। वैकल्पिक रूप से, आप [यह] (http://snipplr.com/view/58457/) आज़मा सकते हैं लेकिन मुझे याद है कि इसे काम करने में परेशानी हो रही है (मुझे यकीन है कि मैंने वास्तव में इसे ठीक से काम नहीं किया है)। –

+0

मैं एक और कैप्टिव के लिए सहमत हूं, बहुत एमबी के लिए। उस लिंक की पुनरारंभ विधि .exe के लिए काम नहीं करती है, लेकिन यह .air फ़ाइलों के लिए काम करती है, इसलिए मैं जो करने की कोशिश कर रहा हूं उसके लिए उपयोग करने योग्य नहीं है। – Nemi

3

Windows के लिए मैं मूल आवेदन Updater का उपयोग

http://code.google.com/p/nativeapplicationupdater/

और WinRAR SFX संग्रह (.exe) ऑटो के लिए मेरे बंदी क्रम एप्लिकेशन को अपडेट।

मूल एप्लिकेशन अपडेटर संस्करण की जांच करेगा, अपना नया एक्सई डाउनलोड करेगा, अपना ऐप बंद करेगा और उस नए एक्सई को चलाएगा।

SFX विकल्प में:

मैं निरपेक्ष पथ, की तरह कुछ का उपयोग करें:% USERPROFILE% \ AppData \ Local \ कॉम \ thenewkid \ APPNAME \

"मोड" के अंतर्गत आप चुन सकते हैं "सभी छुपाएं" मूक मोड में। "सेटअप" के तहत आप इसे निष्कर्षण के बाद अपना application.exe चलाने के लिए प्राप्त करते हैं।

आप Adobe AIR फ़ोल्डर को हटाने के द्वारा अद्यतन आकार कम रख सकते जब तक एसडीके का एक नया संस्करण उपलब्ध हो जाता है

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

1

इस बंदी क्रम में आकाशवाणी के पुनरारंभ के लिए मैक पर मेरे लिए काम करता (Windows के लिए अभी तक की जाँच नहीं की है) (नोट: UpdateAutoTest मेरे ऐप का नाम था):

var appLauncher:File; 
       appLauncher = new File(File.applicationDirectory.nativePath).parent.parent.resolvePath("Contents").resolvePath("MacOS").resolvePath("AutoUpdateTest"); 

      var npInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo; 
      npInfo.executable = appLauncher; 
      var _args:Vector.<String> = new Vector.<String>; 
      //_args.push("-a"); 

      //_args.push(); 
      npInfo.arguments = _args; 
      var np:NativeProcess = new NativeProcess; 
      np.addEventListener(NativeProcessExitEvent.EXIT, npExitHandler); 
      np.start(npInfo); 
      exit(); 
संबंधित मुद्दे