2008-12-08 15 views
7

मैं एक मालिकाना विंडोज सीई 4.2 डिवाइस के लिए एक सी # एप्लिकेशन लिख रहा हूं (जिसके लिए मेरे पास चश्मा या बहुत अधिक जानकारी नहीं है। मुझे फ़ाइल तक पहुंच है सिस्टम, और यह मूल रूप से यह है।) मुझे मूल निर्माता से समर्थन भी नहीं मिल सकता है।विंडोज सीई रीसेट पर .NET CF हटाता है

अब, मैं .NET कॉम्पैक्ट फ्रेमवर्क को ठीक से इंस्टॉल कर सकता हूं, और सब कुछ थोड़ी देर के लिए काम करता है। लेकिन प्रत्येक बार थोड़ी देर में, जब डिवाइस रीसेट हो जाता है, तो फ्रेमवर्क, जीएसी, इससे संबंधित सब कुछ हटा देता है।

मैं जानता हूँ कि यह सिर्फ एक कठिन फ़ैक्टरी सामान्य पर वापस कूद रीसेट नहीं है क्योंकि:

  1. यह रजिस्ट्री सेटिंग याद (अगर मैं फिर से स्थापित करने का प्रयास है, यह कहते हैं ढांचा पहले से स्थापित है, और पूछता है कि मैं पुनर्स्थापित करना चाहते हैं। तो जाहिर है कि रजिस्ट्री कुंजी अभी भी हैं)
  2. फ़ाइलों को हटाया जाता है भले ही मैंने एक हटाने योग्य फ़्लैश कार्ड पर ढांचे को स्थापित किया हो। (स्टोरेज कार्ड पर अन्य फाइलें अकेली रहती हैं, हालांकि)

मुझे पता है कि वहां जाने के लिए बहुत कुछ नहीं है, लेकिन शायद कुछ विंडोज सीई गुरु मुझे यह बताने में सक्षम होंगे कि ऐसा क्यों होता है, और यदि कुछ है इससे बचने के लिए रास्ता तय करें। मुझे विंडोज सीई के बारे में बहुत कुछ पता नहीं है, इसलिए मुझे पता है कि यह पूरी तरह से मानक व्यवहार हो सकता है।

उस मामले के लिए, इस बारे में कोई सलाह है कि इसे आगे कैसे हल करें? फिलहाल, सबसे अच्छा समाधान मैं देख सकता हूं कि हर बूट में बस सब कुछ पुनर्स्थापित करना है, लेकिन यह थोड़ा बेकार लगता है।

संपादित करें: एक रीसेट के बाद, GACLOG.TXT फाइल सिस्टम की जड़ में पाया शामिल

CGACUTIL: आरंभ किया जा रहा 12/08/2008

20: 43: 57.000 CGACUTIL: प्रारंभ

12/08/2008 20: 43: 57.000 CGACUTIL:

निकाला जा रहा है Microsoft .NET सीएफ 3 .5.GAC

12/08/2008 20: 43: 57.000 CGACUTIL: हो गया

12/08/2008 20: 43: 57.000 CGACUTIL:

बाहर निकल रहा है 2008/12/08 20: 43: 57.000

तो हाँ, यह निश्चित रूप से जीएसी को हटा रहा है। हालांकि, और इसे कैसे रोकें?

उत्तर

12

कुछ विंडोज सीई और सीएफ व्यवहार हैं जो आप यहां देख रहे हैं जो आपको यह व्यवहार दे रहा है। असुविधाजनक रूप से कोई अच्छा समाधान नहीं है, लेकिन मैं कम से कम आपको कुछ मार्गदर्शन दे सकता हूं।

  1. विंडोज सीई वर्तमान ऑब्जेक्ट स्टोर को स्टोर करता है, जिसमें फाइल सिस्टम में फाइलें शामिल हैं, विशेष रूप से रैम में लगातार स्टोर पर नहीं।इसमें \ Windows फ़ोल्डर में जोड़े गए किसी भी फाइल और/या फ़ोल्डर शामिल हैं (यह आपके मामले में महत्वपूर्ण है)। जब डिवाइस की शक्ति खो जाती है - आमतौर पर मुलायम या हार्ड रीसेट में, यह डेटा खो जाता है।
  2. सीई रजिस्ट्री (और शायद आपके डिवाइस पर है) एक सतत स्टोर पर संग्रहीत किया जा सकता है। यह फ़ाइल सिस्टम (एक छिद्र के रूप में) में हो सकता है या कुछ गैर-दृश्यमान स्थान में हो सकता है (OEM को स्टोर करने के दो अलग-अलग तरीके हैं)। यह रीसेट पर खो गया है। केवल सहेजे गए आइटम और फ्लश नहीं किए गए हैं।
  3. # 2 के लिए एक परिशिष्ट के रूप में - RegFlushKey API को कॉल करते समय रजिस्ट्री परिवर्तन फ़्लश हो जाते हैं। एक सीएबी स्वचालित रूप से इंस्टॉल करना इसे कॉल करता है (इसलिए सीएफ इंस्टॉल करना)। कुछ OEM भी एक आवधिक टाइमर पर फ्लश करना चुनते हैं।
  4. जब सीएफ जीएसी छवि में कोई आइटम नहीं है, तो फ़ाइल \ Windows फ़ोल्डर में स्थानांतरित हो गई है। वे डालते हैं जब असेंबली अनलोड हो जाती है (मैंने इस साल पहले सीएफ टीम से शिकायत नहीं की थी)।

इसका मतलब क्या है यह है कि आप एक भंडारण कार्ड के लिए CF स्थापित करने और ऐसा होता है अपने अनुप्रयोग चलाते हैं:

  1. CF फ़ाइलें लगातार दुकान में कॉपी कर रहे हैं सीएबी
  2. स्थापना reg खोल दौरान कुंजी लिखा जाता है
  3. रजिस्ट्री प्लावित (सहेज दी)
  4. अनुप्रयोग
  5. CF फ़ाइलें स्थानांतरित कर रहे हैं (कॉपी नहीं) \ विंडोज, जो अस्थिर है करने के लिए चलाता है।

अब अगर आप डिवाइस को रीसेट करते हैं तो सीएफ असेंबली लोड हो जाती है - पोफ! कोई और सीएफ नहीं आपका ऐप स्टोरेज कार्ड पर था, लेकिन जीएसी में नहीं, इसलिए यह जीवित रहता है लेकिन अब नहीं चला सकता है।

एक हैक समाधान: अपने ऐप को लॉन्च करने के लिए "बूटस्ट्रैप" में मूल ऐप का उपयोग करें। इसे चलाने के लिए \ Windows में सीएफ फाइलों की जांच करें और यदि वे लगातार स्टोरेज में किसी स्थान से सीएफ सीएबी स्थापित नहीं करते हैं (इसे केवल पढ़ने के लिए चिह्नित करें तो wceload इसे हटा नहीं देगा)।

दूसरा विकल्प सीएफ़ असेंबली को आपके ऐप से वितरित करना है, न कि उन्हें जीएसी।

+0

धन्यवाद। बेहद सहायक। मैं इसे कल काम पर एक शॉट दूंगा, लेकिन ऐसा लगता है कि आपके पास है इसे खींचा (और जैसा कि आप इससे पहले काट चुके हैं;)) – jalf

+0

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

+4

मुझे @% $ # wceload के उस टुकड़े पर भी शुरू नहीं करना है। यही कारण है कि मैंने हमारे सीएबी इंस्टॉलर एसडीके को लिखा - ताकि आप एक सीएबी स्वयं को अनपैक कर सकें और इंस्टॉलेशन पर पूर्ण नियंत्रण प्राप्त कर सकें। – ctacke

0

मुझे लगता है कि आपको कुछ स्थापित करने के बाद रजिस्ट्री सेटिंग्स को सहेजने के लिए RegSave चलाने की आवश्यकता है। मुझे इसे विंडोज सीई के पुराने (प्री नेट) संस्करण में करना था।

+0

हालांकि यह दूसरी तरफ है। यह रजिस्ट्री को सहेजता है, लेकिन स्थापित .dll को हटा देता है। – jalf

+0

मैं देखता हूं। पुराने संस्करण में मैंने साथ काम किया, सबकुछ रीबूट पर हटा दिया जाएगा। एक विशिष्ट फ़ोल्डर था जहां हम ऐप को पुनर्स्थापित करने के लिए .cab फ़ाइल डाल देंगे। मुझे बस याद है। – Kosta

+0

ठीक है, लेकिन मुझे याद है कि आप उस फ़ोल्डर में dedab'd फ़ाइलों को भी डाल सकते हैं। एक ऐसी चीज खोजें जहां रीबूट के माध्यम से अन्य फाइलें बनी रहें। फ़ोल्डर्स का मतलब यह नहीं है कि उनका क्या मतलब है। पदानुक्रम वास्तव में पदानुक्रम नहीं हैं। सभी अशुद्ध "समृद्ध विंडोज अनुभव" के लिए। – dkretz

0

मेरे डेटा लॉजिक मेमरी सीई पर, अब मैं एक नया बना सकता हूं। नेट-इंस्टॉलेशन 'सत्र' को मैन्युअल रूप से सहेजकर एक ठंडा बूट से बचता है (जो भी इसका मतलब है)। यह यहाँ स्थित है:
Start | Settings | Control Panel | Files Admin | Save session
(। संवाद 'सहेजें session'-बटन दबाने के बाद खुला रहता है, लेकिन आप सिर्फ इतना है कि संवाद को बंद कर सकते हैं)

यह (जाहिर है) अभी भी एक मैनुअल कार्रवाई की आवश्यकता है, तो यह है बस एक और काम-आसपास।
केवल कुछ उपकरणों (विकास/प्रयास-आउट के दौरान) के लिए आवेदन करना तेज़ है, लेकिन अतिरिक्त स्थापना-फ़ाइल या 'ctacke' द्वारा हैक-कोड संभवतः बड़ी मात्रा के लिए बेहतर है।

यह भी दर्शाता है कि एक नया तरीका है। सॉफ्टवेयर द्वारा लगातार स्थापित इंस्टॉलेशन। तो शायद किसी को यह पता लगाने के लिए ट्रिगर किया जा सकता है कि इसे कैसे किया जाए, और इसे दुनिया के साथ साझा करें?

पीएस: मुझे नहीं पता कि यह मैन्युअल बचत कितनी सामान्य है (यदि यह अन्य उपकरणों या अन्य ब्रांडों या अन्य सीई-संस्करणों पर भी लागू होती है)। और नहीं, मुझे पता है कि यह साफ बूट लगातार है।

1

मुझे पता है कि यह एक बहुत पुराना सवाल है, लेकिन चूंकि मेरे पास प्रश्न में उल्लिखित एक ही मुद्दा था, इसलिए मैंने इसे काम करने के लिए बहुत सारे शोध किए। और मैं देशी बूटस्ट्रैप ऐप के उपयोग के बिना इसे करने में कामयाब रहा।

1) मैंने सीएफ कैब निकालने के लिए MSCEInf का उपयोग किया था। मैंने निकाले गए डेटा (जिसमें एक \ विंडोज फ़ोल्डर शामिल है) की प्रतिलिपि बनाई और एक एसडी कार्ड पर मूल कैब ने इसे पूरी तरह से बूट होने के बाद अपने डिवाइस में डाला।

2) अब, पहले कैब इंस्टॉल करें, उसी एसडी कार्ड, या कुछ अन्य एनएएनडी स्टोरेज पर एक खाली फ़ोल्डर चुनें (अगर कोई अन्य हो)।

3) सीएफ कैब से पहले निकाले गए \ Windows फ़ोल्डर की सामग्री को उसी फ़ोल्डर में कॉपी करें जहां आपने सीएफ स्थापित किया था। अगर यह किसी भी फाइल को ओवरराइट करने के लिए कहता है, तो हमेशा "नहीं" चुनें।

4) सुनिश्चित करें कि सीएफ का उपयोग करने/आवश्यक किसी भी ऐप्स को उसी फ़ोल्डर के अंदर स्थित है। आप ऐप से संबंधित किसी भी उपफोल्डर्स को भी वहां रख सकते हैं।

वैसे भी, यह मेरे लिए काम करता है। ऐप्स रीबूट करने के बाद भी काम करते रहते हैं।

आशा है कि इससे मदद मिलती है!

0

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

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