2009-09-22 8 views
73

लोड नहीं कर सका मैं निम्नलिखित Watin त्रुटि हो रही है:Watin त्रुटि विधानसभा

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembl y 'Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=db7cfd3acb5 ad44e' or one of its dependencies. The located assembly's manifest definition do es not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=db

मैं बिन निर्देशिका के लिए System32 से Shdocvw.dll की नकल की है लेकिन अभी भी यह मुझे एक ही समस्याओं दे रहा है।

+4

मैंने NuGet का उपयोग करके MvcContrib.Mvc3.WatiN-ci स्थापित किया और मुझे एक ही त्रुटि मिली। यह पहली बार है जब मैंने NuGet के बावजूद कुछ स्थापित करने का फैसला किया ... मैंने सोचा था कि इन समस्याओं को हल करने के लिए NuGet को हल करना था? – Darragh

उत्तर

49

अद्यतन: यह उत्तर Nuget जारी होने से पहले लिखा गया था और केवल तभी लागू होता है जब आप अपनी निर्भरताओं को प्रबंधित करने के लिए Nuget का उपयोग नहीं कर रहे हैं। यदि आप Nuget का उपयोग कर रहे हैं तो @ निक जोन्स

द्वारा जवाब देखें, मुझे आज यह समस्या थी। आपको WatiN का नवीनतम संस्करण डाउनलोड करना होगा (मैं 2.0.10.928 का उपयोग कर रहा हूं) और हस्ताक्षर किए गए इंटरॉप.SHDocVw.dll को संदर्भित करता हूं जो WatiN द्वारा प्रदान किया जाता है।

प्रयास करें follwoing:

  1. Interop.SHDocVw.dll
  2. अन्य सभी संदर्भ निकाल दें राइट अपने समाधान क्लिक करें और 'स्वच्छ समाधान'
  3. संदर्भ Interop.SHDocVw.dll कि प्रदान की जाती है का चयन WatiN द्वारा
  4. अपना समाधान बनाएं।

उम्मीद है कि इससे मदद मिलती है।

अद्यतन: निक जोन्स सही है। यह यदि आप NuGet का उपयोग कर रहे हैं तो कोई समस्या नहीं होनी चाहिए .... लेकिन मुझे यह संदेश भी मिल रहा था जब MvcContrib.Mvc3.TestHelper-ci का उपयोग करते हुए। पहली नज़र में यह seems like the '-ci' packages is the way to go पर मैंने दो कारणों से MvcContrib.WatiN पैकेज का उपयोग करने का निर्णय लिया।

1) मैं नहीं मिलता है त्रुटि संदेश

2) MvcContrib.Mvc3.TestHelper-ci WatiN.Core.dll की using an old version (1.3.0.4000 है) जहां "फ़ाइल या विधानसभा लोड नहीं कर सका" चूंकि MvcContrib.WatiN पैकेज एक नए संस्करण का उपयोग कर रहा है (2.0.0.99)

+41

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

+9

एनयूनीट में, हमें हमारे testfixture में [RequiresSTA] विशेषता भी जोड़नी पड़ी। – Amir

+0

@MoMo कृपया नहीं कि Darragh टिप्पणी आपके उत्तर में जोड़ा जाना चाहिए। झूठी – Pomster

118

यदि आपने VS2010 में NuGet का उपयोग करके WatiN को स्थापित और संदर्भित किया है, तो आपके पास पहले से ही सही संदर्भ होना चाहिए, इसलिए उन्हें हटाने की आवश्यकता नहीं है और फिर से जोड़ा। लेकिन आपको अभी भी "एम्बेड इंटरप प्रकार" सेटिंग को इंटरऑप.SHDocVw संदर्भ पर गलत पर बदलने की आवश्यकता होगी।

+3

पर एम्बेड इंटरफ़ेस प्रकार बदलें धन्यवाद, यह मेरे लिए तय है।मुझे अन्य उत्तरों में उल्लेख के रूप में [RequiresSTA] भी जोड़ना पड़ा। – ssmith

+0

+1 यह मेरे लिए भी तय किया गया। (मैं वीएस -2010 में NuGet पैकेज का उपयोग कर रहा हूँ)। – JTech

+1

यह वीएस2012 में भी काम करता है। – racingcow

29

संदर्भ "इंटरॉप.SHDocVw.dll" की गुणों को देखें। गलत करने के लिए "एम्बेड इंटरप प्रकार" बदलें।

समस्या यह है कि यह आपके बिन फ़ोल्डर में डीएलएल फ़ाइल की प्रतिलिपि नहीं बना रहा है। लेकिन इस सेटिंग के बाद, यह ठीक से करेगा।

मुझे एक ही त्रुटि थी, और अब यह ठीक काम कर रहा है।

+0

धन्यवाद, मैंने मैन्युअल रूप से bin \ Debug पर प्रतिलिपि बनाई .. अब यह काम करता है –

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