के विभिन्न संस्करणों का संदर्भ देना मैं अपने एमवीसी प्रोजेक्ट के साथ खेल रहा हूं।Json.NET dll
मैं परियोजना है, जो बारी में अपनी निर्भरता से एक के रूप Newtonsoft.Json.dll 4.0.0.0 (पुराने) का उपयोग करता है में एक पैकेज SocialAuth.Net बुलाया Nugeted।
तब भी मुझे जेसन की आवश्यकता थी। खुद को, मैं एक नया संस्करण चाहता था, इसलिए मैंने जेसन.नेट को नूजेट किया, जिसमें एक नया संस्करण 4.5.0.0 (नया) है।
तब समस्या होती है। मेरे रेजर ध्यान में रखते हुए "ViewBag.Title = ...." यह लाल रेखांकन कह गया है:
Warning 1 c:\users\admin\documents\visual studio 2010\Projects\WebApp\WebApp\Views\Home\Index.cshtml: ASP.NET runtime error: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
यह मेरा web.config की Json हिस्सा है:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
</dependentAssembly>
तो,
मैं संदर्भों पर गया, पाया और पाया Newtonsoft.Json 4.0.0.0 था (शायद SocialAuth.Net के साथ आया था), और मैंने इसे हटा दिया, और 4.5.0.0 संदर्भ मुझे Nuget से मिला।
मैं वेब ऐप/बिन/डीबग/फ़ोल्डर में गया और सब कुछ हटा दिया, और फिर परियोजना का पुनर्निर्माण किया।
हालांकि, एक बार मैं webapp के पुनर्निर्माण, Newton.Json 4.0.0.0 वापस बिन/डिबग/में परवाह किए बिना कैसे मैं मैन्युअल रूप से नए Nuget 4.5.0.0 करने के लिए इसे संदर्भ आता है। और एक ही त्रुटि वापस आती है। मैं फँस गया हूँ।
क्या आपके पास है और इस डीएल मुद्दे से निपटने का तरीका है? धन्यवाद।
संपादित -----------------------------------
सोच का एक सा होने के बाद, मैं समझता हूं कि ऐसा इसलिए है क्योंकि पहले जेसन.Net (नया 4.5) पहले जुड़ा हुआ है, तो पुराने होने के बाद पुराना व्यक्ति आता है। तो पुराना एक नया ओवरराइट करता है।
मैं जीएसी इंस्टॉलिंग से परिचित नहीं हूं, लेकिन मुझे पता है कि मैं वर्म्स की खोल सकता हूं और वहां 2 संस्करण स्थापित कर सकता हूं, जो मैं नहीं चाहता, क्योंकि इसका मतलब है कि मुझे वेब पर तैनात हर मशीन पर ऐसा करना है एप्लिकेशन। क्या web.config के साथ खेलने का कोई तरीका है और इसके आसपास हो?
oldVersion = "0.0.0.0-4.5.0.0" पुराना होना चाहिए = "0.0.0.0-4.0.0.0" – user516883