2010-02-18 14 views
6

का उपयोग कर मैं किसी प्रकार के इंस्टॉलर एप्लिकेशन के लिए विंडोज स्क्रिप्ट होस्ट का उपयोग कर रहा हूं और मैं इसके साथ स्टार्ट मेनू में शॉर्टकट बना रहा हूं। यह समस्या तब आई जब मैंने x64 पर्यावरण (win7 परम x64 + बनाम 2010) पर स्विच कियाविंडोज स्क्रिप्ट होस्ट

मैंने विंडोज स्क्रिप्ट होस्ट ऑब्जेक्ट मॉडल (सी: \ विंडोज \ syswow64 \ wshom.ocx से) का संदर्भ जोड़ा, यह इंटरऑप उत्पन्न हुआ। IWshRuntimeLibrary dll।

मैंने 'IWshRuntimeLibrary का उपयोग करके जोड़ा'; मेरी .cs फ़ाइलों के लिए, लेकिन जब मैं

WshShell sh = new WshShellClass(); 

बनाने की कोशिश की यह एक अपवाद फेंकता है:

फ़ाइल या विधानसभा लोड नहीं कर सका Interop.IWshRuntimeLibrary, संस्करण = 1.0.0.0, संस्कृति = तटस्थ , PublicKeyToken = शून्य 'या इसकी निर्भरताओं में से एक। एक गलत प्रारूप के साथ एक प्रोग्राम लोड करने के लिए एक प्रयास किया गया था।

मुझे लगता है कि मुझे काम करने के लिए उस wshom.ocx के 64-बिट संस्करण की आवश्यकता होगी, लेकिन मुझे नहीं पता कि मुझे क्या प्रयास करना चाहिए।

या मैं सिर्फ विंडोज़ स्क्रिप्ट सामान डंप कर देंगे, लेकिन मैं .net आवेदन से प्रारंभ मेनू शॉर्टकट बनाने के लिए एक और तरीका है की जरूरत है।

उत्तर

6

ऐसा लगता है कि नेट सभी विधानसभाओं की जरूरत है एक ही 32-बिट या 64-बिट होने के लिए, और तुम मिश्रण और मैच नहीं दूँगा। तो यदि आप ऐप 32-बिट में काम कर रहे थे, तो आपको "x86" (यानी 32-बिट) ऐप (जिसे 32-बिट और 64 दोनों पर चलाना चाहिए) को स्पष्ट रूप से उत्पादित करने के लिए कंपाइलर विकल्प (प्रोजेक्ट गुणों में) सेट करने का प्रयास करना चाहिए -बिट)। स्क्रिप्टिंग होस्ट के 64-बिट संस्करण को ट्रैक करने से यह आसान हो सकता है।

ध्यान दें कि डिफ़ॉल्ट कंपाइलर विकल्प "कोई भी" प्रतीत होता है, जो 64-बिट ओएस पर 64-बिट के रूप में .NET असेंबली चलाता है, और 32-बिट ओएस पर 32-बिट चलाता है।

+1

+1 एंडी अच्छा काम। X64 पर चलते समय वीएस 2008 से वीएस 2010 के समाधान को अपग्रेड करते समय मैंने इसी समस्या पर हमला किया। हालांकि वीएस 2008 और वीएस 2010 संस्करण दोनों 'एएनसीपीयू' के निर्माण के लिए, केवल वीएस 2008 संस्करण सही ढंग से भाग गया। वीएस 2010 संस्करण को 'x86' पर स्विच करने से यह ठीक हो गया है, भलाई का शुक्र है। रहस्य बना हुआ है कि 'AnyCPU' को लक्षित करते समय वीएस 2008 संस्करण मेरी x64 मशीन पर सही तरीके से क्यों चलता है, लेकिन मुझे खुशी है कि यह अभी काम कर रहा है। धन्यवाद एंडी! –

+0

कोई विचार नहीं कि यह क्यों हो रहा है। एक ही मुद्दा प्राप्त करना मुझे काम करने के लिए "AnyCPU" की आवश्यकता है। –

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