c# फ़ाइल या असेंबली 'वेबग्रेज़, संस्करण=1.5.1.25624, संस्कृति=तटस्थ, PublicKeyToken=31bf3856ad364e35' या इसकी निर्भरताओं में से कोई भी लोड नहीं हो सका




.net asp.net-mvc-4 (12)

मेरे पास एक एमवीसी 4 वेब एपीआई प्रोजेक्ट है। सेवा प्रोजेक्ट चलाते समय मुझे एक त्रुटि मिल रही है

फ़ाइल या असेंबली 'वेबग्रेज़, संस्करण = 1.5.1.25624, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' या इसकी निर्भरताओं में से कोई भी लोड नहीं हो सका। सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा।

मैंने WebGrease.dll फ़ाइल और अभी भी इसकी आने वाली त्रुटि को जोड़ा है

और web.config बदलने के साथ कोशिश की

<bindingRedirect oldVersion="0.0.0.0-1.3.0.0"/>"

तथा

<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />

कृपया सलाह दें कि मैं क्या खो रहा हूं।


यह त्रुटि इसलिए है क्योंकि Microsoft.AspNet.Web.Optimization 1.1.3 आंतरिक रूप से संदर्भ WebGrease 1.5.1.25624 संदर्भित WebGrease 1.5.1.25624 भले ही Nuget पैकेज, WebGrease 1.5.2.14234 पर निर्भरता है। Nuget पैकेज बनाते समय कोई स्पष्ट रूप से गड़बड़ हो गया।

इसे हल करने के लिए, इस वेब असेंबली को अपने वेब में बाध्यकारी जोड़ें। Web.Config

  <dependentAssembly>
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.5.1.25624" newVersion="1.5.2.14234" />
  </dependentAssembly>

Alreasy इस त्रुटि को हल किया। मैंने सोचा था कि स्थिति सरल थी। जब आप System.Web.Optimization के nuget नए संस्करण से स्थापित करते हैं तो इसका संदर्भ है

// संदर्भ: वेबग्रेज़, संस्करण = 1.5.1.25624, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35

उसी समय मेरे पास वेबग्रेज़ संस्करण 1.5.2.14234 है। प्रोजेक्ट चल रहा है, हमारे पास यह त्रुटि है: फ़ाइल या असेंबली 'वेबग्रेज़, संस्करण = 1.5.1.25624 लोड नहीं हो सका

तो, मैं इस संस्करण को न्यूजेट पर जांचने की कोशिश करता हूं और surprized था, कि यह नहीं था ... लेकिन जब मैं वीएस के साथ नई परियोजना बनाते हैं - मुझे मिल गया। इस त्रुटि को हैक करने के लिए मैं इसे GAC में स्थापित करने का प्रयास करता हूं .. लेकिन gac मुझे कहता है, कि यह lib सदस्यता नहीं है। System.Web.Optimization संस्करण = 1.1.0.0 को डाउनग्रेड करना, जहां संदर्भ है:

// संदर्भ: वेबग्रेज़, संस्करण = 1.3.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35

और 1.3.0.0 दृढ़ता से सदस्यता लिया गया है - मेरी मदद की। यह काम करता हैं। वेबग्रेज़ को अपग्रेड करने के बाद, मेरे पास यह संस्करण = 1.6.5135.21930 है और यह पूरी तरह से काम करता है।

निष्कर्ष पर, मेरे पास इस त्रुटि की तुलना में एक राय है (फ़ाइल या असेंबली 'वेबग्रेज़, संस्करण = 1.5.1.25624) लोड नहीं किया जा सका क्योंकि System.eb.Optimization lib को सदस्यता रहित वेबग्रेज़ डीएलएल संस्करण में संदर्भित किया गया है।


मैंने जो मुद्दा देखा वह निकटता से मेल खाता था। हालांकि, Nuget पैकेज प्रबंधक (संस्करण निर्दिष्ट किए बिना) से पैकेज को अद्यतन करने से समस्या ठीक नहीं हुई। इस मुद्दे को ठीक करने के लिए मुझे क्या करना है। (अनिवार्य रूप से, मैं संस्करण 1.6 में WebGrease अद्यतन की व्याख्या)

विजुअल स्टूडियो में पैकेज मैनेजर कंसोल के भीतर से संस्करण 1.6 में स्पष्ट रूप से WebGrease अपडेट करें। यहाँ आदेश है।

Install-Package WebGrease -Version 1.6

आउटपुट होना चाहिए

Removing 'WebGrease 1.5.2' from {project name}

{प्रोजेक्ट नाम} में 'वेबग्रेज़ 1.6.0' को जोड़ने से {WebGrease 1.6.2 'को {Project name} में सफलतापूर्वक' WebGrease 1.5.2 'अनइंस्टॉल किया गया। 'WebGrease 1.5.2' को सफलतापूर्वक अनइंस्टॉल किया गया।

यह web.config के साथ अद्यतन समाप्त हो गया

    assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /
    bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" 

इसके परिणामस्वरूप csproj फ़ाइल से एक लाइन को हटाने का भी परिणाम हुआ।

<WebGreaseLibPath>..\packages\WebGrease.1.5.2\lib</WebGreaseLibPath>

और csproj फ़ाइल में इस नोड में एक अद्यतन

<Reference Include="WebGrease, Version=1.5.2.14234, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>

इसके लिए

<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>

ध्यान रखें कि मुझे अपनी स्थानीय मशीन पर बस एक मंच वेब सर्वर पर कोई समस्या नहीं थी। मैं पैकेज को अपडेट किए बिना इस मुद्दे को हल करने के लिए अपना सर्वश्रेष्ठ प्रयास करना चाहता था, लेकिन यह मेरा एकमात्र फिक्स था।


तैनाती के दौरान मुझे यह मुद्दा था।

मैंने WebGrease.dll को उत्पादन में कॉपी किया, लेकिन मैं वेब को भी अपडेट करना भूल गया। कॉनफिग फ़ाइल भी।

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

यहां मैंने जो कुछ किया है, उसके आसपास है,

  1. मैंने अपनी वर्तमान (दूषित परियोजना) की Web.config फ़ाइल की एक प्रति "दूषित-वेब। कॉनफिग" में सहेजी। और परियोजना समाधान बंद करें।
  2. एक ही प्रकार के मेरे courrpted परियोजना के साथ एक नया आवेदन बनाया। इसे ProjTemp कहा जाता है।
  3. "PorjTemp" को सहेजें और चलाएं, फिर वेब की प्रतिलिपि सहेजें। "OrigTemp_Web.config" पर कॉन्फ़िगर करें
  4. Web.config फ़ाइलों को बंद करें।
  5. "ProjTemp" खुले टूल्स -> "NuGet पैकेज प्रबंधक" -> "समाधान के लिए NuGet संकुल प्रबंधित करें" ---> सभी संबंधित स्थापित संकुल अद्यतन करने के लिए चुनें। 6 अब नई अद्यतन Web.config फ़ाइल खोलें। "" से शुरू होने से अद्यतन जानकारी प्राप्त करें "
<runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
             --- Copy this section to replace in the corrupted file.---
       </assemblyBinding>
</runtime>
  1. अपनी परियोजना को बचाओ। पुनर्निर्माण और भागो। उम्मीद है कि यह मदद करेगा! ....

उदाहरण के लिए, VS2015 उदाहरण के लिए सही है।

<runtime>
           <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                 <dependentAssembly>
                        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
                        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
                 </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
              </dependentAssembly>
              <dependentAssembly>
                        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
                        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /
              </dependentAssembly>
              <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /
                </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security.OAuth" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security.Cookies" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                 </dependentAssembly>
                 <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                         <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                  </dependentAssembly>
                  <dependentAssembly>
                         <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
                        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
                   </dependentAssembly>
          </assemblyBinding>
  </runtime>

मैंने इसे ठीक करने के लिए किया है, गीथूब सामी, ओवेस 4 कंप्यूटर पर समाधान


अन्य उत्तरों ने मेरे लिए यह हल नहीं किया। हम एक नई एमवीसी 5 एपीआई परियोजना जोड़ रहे हैं और यह पुराने एमवीसी 2 एपीआई के साथ अच्छा नहीं खेल रहा था। पैकेज अपडेट चलाने के बाद मुझे उल्लिखित त्रुटि मिल रही थी। मेरे लिए संकल्प अपमानजनक परियोजनाओं के web.config में NuGet द्वारा जोड़े गए वेबग्रेज़ संदर्भों को हटाना था।

हल करने के लिए: अपवाद फेंकने वाले प्रोजेक्ट (ओं) के web.config खोलें और WebGrease के लिए जोड़े गए निर्भरता को हटाएं या टिप्पणी करें।


मेरे लिए, उपर्युक्त परिदृश्यों में से कोई भी काम नहीं किया।

दो दिनों की कोशिश करने के बाद, अंततः मुझे समाधान मिला।

मैंने जो किया था, मैंने माइक्रोसॉफ्ट को अनइंस्टॉल किया। एस्पेनेट.एब.ऑप्टिमाइजेशन और वेबग्रेज़ दोनों।

मुझे पता था कि यह अनुकूलन असेंबली आंतरिक रूप से WebGrease 1.5.1 को संदर्भित करती है। इसलिए मैंने ऑप्टिमाइज़ेशन का एक संस्करण चुना जो वेबग्रेज़ 1.5.1 का संदर्भ नहीं देता है।

सबकुछ काम करने के लिए मैंने निम्नलिखित आदेश चलाए।

Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization -Version 1.1.0

मुझे आशा है कि मैं किसी ऐसे व्यक्ति के लिए अच्छी मदद कर पाऊंगा जिसके लिए उपर्युक्त समाधान काम नहीं करता है।

चीयर्स!


बहुत सी चीजों की कोशिश की लेकिन यह मेरे लिए कभी-कभी वेबग्रेज़ असेंबली के मुद्दों पर काम करता था। कभी-कभी वेब। ऑप्टिमाइज़ेशन असेंबली के मुद्दे। यह माइक्रोसॉफ्ट.एस्पनेट.एब.ऑप्टिमाइज़ेशन 1.1.3 के साथ मेरे लिए काम किया

Update-Package WebGrease -Version 1.6

यह समस्या तब भी उत्पन्न हो सकती है जब आप Web.config फ़ाइल को वेब सर्वर पर तैनात नहीं करते हैं।


ओली लेकिन सोना ...

मैं विजुअल स्टूडियो 2013 में एमवीसी 5 प्रोजेक्ट पर काम कर रहा था, और मुझे एक ही समस्या थी। हम संस्करण के लिए विजुअल एसवीएन का उपयोग कर रहे थे और मैं अपनी टीम में एकमात्र ऐसा था जिसकी समस्या थी।

मेरे लिए काम करने वाली एकमात्र चीज यह थी:

  1. Microsoft.AspNet.Web.Optimization अनइंस्टॉल करें
  2. Nuget कमांड प्रॉम्प्ट में चलाएं: Microsoft-AspNet.Web.Optimization -Version 1.0.0 स्थापित करें

यह वेब का एक पुराना संस्करण स्थापित करेगा। ऑप्टिमाइज़ेशन। परियोजना शुरू में संस्करण 1.1.0 का संदर्भ दे रहा था। समस्या WebGrease के साथ नहीं है, लेकिन System.Web.Optimization.dll के साथ जो WebGrease के पुराने, मौजूदा संस्करण का संदर्भ दे रहा है।

जब मैंने प्रोजेक्ट चलाया, तो यह काम किया, लेकिन मैं उसी पैकेज संस्करण को बाकी टीम के रूप में उपयोग करना चाहता था। तो, मैंने अद्यतन करने की कोशिश की लेकिन ... त्रुटि वापस आई ...

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

मुझे उम्मीद है कि यह किसी की मदद करेगा, किसी दिन .. विजुअल स्टूडियो 2016 और एमवीसी 8 के साथ :)


क्या आपने NuGet के माध्यम से कोशिश की है?

Install-Package WebGrease -Version 1.5.1

या

Install-Package WebGrease -Version 1.5.2

मुझे पता है कि यह ओपी के लिए देर हो चुकी है लेकिन एमवीसी 4 NuGet पैकेज के लिए बूटस्ट्रैप 3 को आजमाने के दौरान मैं एक ही समस्या में भाग गया, मेरे मामले में यह माइक्रोसॉफ्ट.एस्पनेट.एब.ऑप्टिमाइज़ेशन पैकेज के साथ कुछ करने के लिए था, और प्रबंधित एक साधारण समाधान पाएं।

पैकेज प्रबंधक कंसोल में निम्न आदेशों को निष्पादित करने का प्रयास करें:

Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease
Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease

पहली दो लाइनों का मेरे लिए कोई प्रभाव नहीं पड़ा क्योंकि उन पैकेजों को पहले से ही स्थापित किया गया था और बूटस्ट्रैप 3 द्वारा एमवीसी 4 पैकेज के लिए अपडेट किया गया था, लेकिन मैं उन्हें वैसे भी चला गया और फिर यह सब संकलित और बहुत अच्छा चला गया।





webgrease