2009-12-09 14 views
21

पर "अनुपलब्ध" GPSVC.DLL NUnit हाल ही में Vista/32 से Win7/64 तक अपग्रेड किया गया। मेरी पुरानी मशीन पर, सब कुछ ठीक काम कर रहा था।विंडोज़ 7/64

दुर्भाग्यवश, मेरी नई मशीन पर एनयूनीट मेरे यूनिट परीक्षण लोड नहीं करेगा, त्रुटि संदेश "System.IO.FileNotFoundException: फ़ाइल या असेंबली 'यूनिटटेस्ट' या इसकी निर्भरताओं में से कोई भी लोड नहीं हो सका। सिस्टम नहीं मिल सका फ़ाइल निर्दिष्ट "। (वास्तव में, मैं अपने समाधान की परियोजनाओं के सभी के माध्यम से जाना था और उन्हें 32-बिट के लिए सेट इतनी दूर पाने के लिए।)

तो मैं निर्भरता वाकर लोड, और यह मुझे बताया कि मैं IESHIMS.DLL याद आ रही थी । मैंने अपनी मशीन पर दो पाया, इसलिए मैंने इंटरनेट एक्सप्लोरर निर्देशिका से 32-बिट संस्करण में कॉपी किया, और डीडब्ल्यू ने उस फाइल के बारे में शिकायत करना बंद कर दिया।

हालांकि, यह भी GPSVC.DLL गुम है। मुझे सी: \ विंडोज \ System32 में इसकी केवल एक प्रति मिली, लेकिन जब मैं इसे अपनी यूनिट परीक्षण निर्देशिका में कॉपी करता हूं, डीडब्ल्यू शिकायत करता है कि यह 64-बिट है, और NUnit अभी भी नहीं चलेगा। यह अब गायब सूची में SYSNTFY.DLL जोड़ता है। मुझे केवल उनमें से एक मिला है, और यह 64-बिट भी है। NUnit अभी भी एक त्रुटि रिपोर्ट करता है।

तो क्या मुझे इस 64-बिट ओएस को स्क्रैप करना चाहिए और 32-बिट पर अच्छा जाना चाहिए, या क्या मुझे कुछ याद आ रही है?

+2

gpsvc.dll केवल 64-बिट प्रतीत होता है। हालांकि, यह देरी लोड हो गई है, इसलिए यहां कोई मुद्दा नहीं होना चाहिए क्योंकि यह वास्तव में उपयोग किए जाने पर ही लोड किया जाएगा। मुझे नहीं पता कि आपके मामले में क्या गलत हो रहा है, लेकिन gpsvc.dll पर ध्यान केंद्रित करना एक लाल हेरिंग प्रतीत होता है। – Michael

+0

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

उत्तर

10

मैंने आज भी यही समस्या मारा, सौभाग्य से एक बहुत ही सरल फिक्स और एक जटिल है।

उन्हें आसानी से ठीक, nunit-सांत्वना-x86.exe चलाने के लिए है nunit-console.exe के बजाय

एक आंशिक विवरण के साथ मुश्किल ठीक है:

क्या हो रहा है nunit सांत्वना धावक है 64 बिट मोड में चल रहा है, जो किसी भी तरह से 32 बिट मोड में आपके यूनिट टेस्ट डीएल लोड करने से रोकता है।

फिक्स नूनिट कंसोल एक्सई में किया गया है, आप इसे 32 बिट संगतता मोड में चलाने के लिए मजबूर करने के लिए विंडोज़ बताते हैं। यह link आपको दिखाता है कि यह कैसे करें।

एनबी, आपको corfags.exe प्राप्त करने के लिए एक विंडोज़ एसडीके डाउनलोड करने की आवश्यकता होगी, एसडीके कमांड प्रॉम्प्ट से कमांड को चलाने के लिए याद रखें।

0

एकमात्र तरीका मैं इसे काम करने के लिए प्राप्त कर सकता था, मेरा पूरा एप्लिकेशन 32-बिट लक्ष्य में परिवर्तित करना था, और 32-बिट वर्चुअल मशीन पर इसका परीक्षण करना था। इसके अलावा, डीएलएल को स्थानीय (गैर-नेटवर्क) ड्राइव पर होना था, क्योंकि नेटवर्क ड्राइव पर डिबगिंग की अनुमति नहीं है (कम से कम मैं इसे काम करने में सक्षम नहीं था)।

0

विंडोज़ में 64-बिट कमांड प्रॉम्प्ट है, लेकिन आप स्पष्ट रूप से c:\windows\syswow64\cmd.exe प्रारंभ करके 32-बिट प्राप्त कर सकते हैं। वहां से आप c:\windows\syswow64\regsvr32.exe पर कॉल कर सकते हैं और पंजीकरण सफल होगा।