2011-12-08 22 views
10

मैंने इसके लिए Google खोजा है और समस्या का समाधान नहीं मिला।फ़ाइल या असेंबली 'Microsoft.Practices.EnterpriseLibrary.Common' या इसकी निर्भरताओं में से कोई भी लोड नहीं हो सका

मेरी वेबसाइट संदर्भ डीएएल (कस्टम डीएल) जो एंटरप्राइज़ लाइब्रेरी डेटा एक्सेस घटक का संदर्भ देती है।

मैं NuGet Package Manager और जब मैं वेबसाइट का निर्माण करने के लिए इस संकलन त्रुटि पॉप अप होने की कोशिश से उद्यम लाइब्रेरी को शामिल किया है:

त्रुटि 44 फ़ाइल या विधानसभा लोड नहीं कर सका Microsoft.Practices.EnterpriseLibrary.Common ' या इसकी निर्भरताओं में से एक। स्थित विधानसभा के प्रकट परिभाषा विधानसभा संदर्भ

मैं Enterprise Library dlls के लिए दाल में Copy Local = True स्थापित करने की कोशिश की है से मेल नहीं खाता और DLLs अभी भी त्रुटि पॉप्स DAL dll के साथ वेबसाइट के बिन निर्देशिका के लिए स्थानांतरित कर रहे हैं, लेकिन अप।

समस्या

किसी को भी इस पर मेरा मार्गदर्शन कर सकते हैं ....

+0

कृपया सुनिश्चित करें कि सभी ईएल डीएलएस फ़ोल्डर में हैं, कॉमन एक। –

+1

मैंने उपर्युक्त उल्लेख किया है कि डीएलएस पहले से ही वेबसाइट बिन फ़ोल्डर –

+0

पर प्रतिलिपि बनाई गई है। क्या यह जारी है जब परियोजना .net फ्रेमवर्क क्लाइंट प्रोफ़ाइल पर सेट है, इसे पूर्ण डॉट नेट में बदलने का प्रयास करें? सोरी अगर यह गलत जवाब है – adopilot

उत्तर

8

कि DLL है कि आप प्रयोग कर रहे हैं और एक है कि अपनी परियोजना में संदर्भित है अलग हैं। मुझे यकीन नहीं है कि मैनिफेस्ट में क्या अंतर है, लेकिन यह संस्करण और/या सार्वजनिक कुंजी हो सकता है। अपनी परियोजना में DLL संदर्भ के लिए

  1. गुण ओपन और संस्करण विशिष्ट सेट गलत पर:

    आप चीजों की एक जोड़ी की कोशिश करने के लिए है।

  2. संदर्भ हटाएं, बिन फ़ोल्डर से DLL हटाएं, और संदर्भ को फिर से जोड़ें।

  3. आपके पास अपने जीएसी में एक अलग/गलत संस्करण भी हो सकता है। यह सुनिश्चित करने के लिए कि आप हमेशा एक विशिष्ट, ज्ञात संस्करण का उपयोग कर रहे हैं, अपनी प्रोजेक्ट निर्देशिका से संबंधित एक असेंबली फ़ोल्डर बनाएं, उस निर्देशिका में डीएलएल की प्रतिलिपि बनाएँ, और जीएसी या अन्य जगहों में एक के बजाय असेंबली निर्देशिका में डीएलएल का संदर्भ जोड़ें आपकी मशीन पर यह सुनिश्चित करेगा कि आपके द्वारा एप्लिकेशन के लिए लक्षित केवल विशिष्ट संस्करण का उपयोग बाद में आपके मशीन पर अपडेट किए गए किसी भी संस्करण के बजाय किया जाएगा।

+1

'संस्करण विशिष्ट = सत्य' को सेट करने से समस्या हल हो गई है। मुझे लगता है कि मेरे सिस्टम पर 'एंटरप्राइज़ लाइब्रेरी' के कई संस्करणों के कारण और एक और निर्देशिका बनाने और डीएलएस रखने के कारण एक ही प्रभाव हो सकता है ... –

+0

मेरे लिए (2) काम किया। मैंने उन संदर्भों को हटा दिया जो त्रुटि दे रहे थे और उन्हें फिर से पढ़ा –

4

NuGet CommonServiceLocator

Install-Package CommonServiceLocator 
2

इस dll कुछ खिड़कियों आवेदन स्थापना के भाग के रूप डेवलपर मशीनों पर GAC में होने की संभावना है (मेरे सबसे अच्छे अनुमान दृश्य स्टूडियो या SSMS हैं)। यही कारण है कि हमें बिल्ड मशीन पर चेतावनियां या त्रुटियां मिलने की संभावना है, जिसे हम जीएसी को उत्पादन सर्वर के रूप में साफ रखने के लिए अपना सर्वश्रेष्ठ प्रयास करते हैं।

मैन्युअल फाइल डाउनलोड करने के लिए आपको https://servicelocation.codeplex.com/

करने के लिए जाने का निर्माण चेतावनी और त्रुटियों को ठीक करने के लिए कर सकते हैं, तो आप बस CommonServiceLocation package स्थापित करने के लिए एक NuGet आदेश को चलाने के लिए की जरूरत है। पैकेज में केवल यह एक डीएलएल फ़ाइल है। माइक्रोसॉफ्ट ने 2008 से इस फाइल के केवल 1 संस्करण (1.0.0.0) को जारी किया है। फ़ाइल सभी .NET संस्करणों और सभी एकता संस्करणों के साथ पूरी तरह से संगत है।

0

इस जानकारी

मैं एक ही मुद्दा मिल गया के लिए धन्यवाद, मैं 4.0 करने के लिए 2.0 से फ्रेमवर्क उन्नत बनाया है, मैं उस आप का उल्लेख सभी कोशिश की, लेकिन समाधान में EnterpriseLibrary संदर्भ से प्रत्येक के लिए PublicKeyToken मूल्यों को निर्धारित करने था Web.Config फ़ाइल

0

वही समस्या! मैंने अभी निर्माण को मंजूरी दे दी है और परियोजना का पुनर्निर्माण किया है। तो, सभी पुरानी चीजें चली गई हैं और सही संस्करण बदल दिए गए हैं। हल किया।

0

मैं app.config फ़ाइल ::

, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null 

यानी में से सभी लॉगिंग संदर्भ निकाल कर इस समस्या को हल करने में सक्षम था:

<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, 
Microsoft.Practices.EnterpriseLibrary.Logging, 
Version=6.0.0.0, Culture=neutral, PublicKeyToken=null" 
requirePermission="true" /> 

बन जाता है:

 <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, 
Microsoft.Practices.EnterpriseLibrary.Logging" 
requirePermission="true" /> 

यह आदर्श नहीं है, लेकिन यह काम करता है ...

एंटरप्राइज़ लाइब्रेरी कॉन्फ़िगरेशन टूल, मानों को वापस सेट करता है, इसलिए आपको इसके लिए देखना होगा। मुझे पता है कि इन गलत मिलान वाली सेटिंग्स को स्वीकार करने के लिए कॉन्फ़िगरेशन फ़ाइल को बताने का एक तरीका है - लेकिन मुझे यकीन नहीं है कि कैसे।

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

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