it-swarm.com.ru

Не удалось загрузить файл или сборку 'WebGrease, версия = 1.5.1.25624, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из ее зависимостей

У меня есть проект веб-API MVC4. при запуске сервисного проекта я получаю сообщение об ошибке 

Не удалось загрузить файл или сборку 'WebGrease, версия = 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" />

пожалуйста, совет, что я пропускаю.

59
Jidheesh Rajan

Вы пробовали через NuGet?

Install-Package WebGrease -Version 1.5.1

или же

Install-Package WebGrease -Version 1.5.2
45
Fernando Vezzali

Я знаю, что для ОП уже поздно, но я столкнулся с той же проблемой, когда пробовал Bootstrap 3 для MVC 4 NuGet, в моем случае это было связано с Microsoft.AspNet.Web. Оптимизация пакет, и удалось найти простое решение.

Попробуйте выполнить следующие команды в консоли диспетчера пакетов:

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

Первые две строки не имели никакого эффекта для меня, так как эти пакеты уже были установлены и обновлены пакетом Bootstrap 3 для MVC 4 , но я все равно запустил их, а затем все скомпилировалось и работало отлично.

80
c0y0teX

Эта ошибка вызвана тем, что Microsoft.AspNet.Web.Optimization 1.1.3 внутренне ссылается на 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>
54
André Pena

Для меня ни один из вышеперечисленных сценариев не сработал. 

Попробовав два дня, я наконец нашел решение. 

То, что я сделал, я удалил Microsoft.AspNet.Web.Optimization и WebGrease оба.

Я знал, что эта сборка оптимизации внутренне относится к WebGrease 1.5.1. Поэтому я выбрал версию оптимизации, которая не относится к WebGrease 1.5.1.

Я запустил следующие команды, чтобы все заработало.

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

Я надеюсь, что смогу быть хорошей помощью для кого-то, для кого вышеупомянутое решение не работает. 

Ура!

14
Parth Jani

Наблюдаемая мною проблема полностью соответствовала тому, что упоминал Джидхиш Раджан. Однако обновление пакета из диспетчера пакетов Nuget (без указания версии) не устранило проблему. Вот что мне нужно было сделать, чтобы решить проблему. (По сути, я обновил WebGrease до версии 1.6)

В консоли диспетчера пакетов в Visual Studio явно обновите WebGrease до версии 1.6. вот команда. 

Install-Package WebGrease -Version 1.6

Выход должен быть 

Removing 'WebGrease 1.5.2' from {project name}

Добавление 'WebGrease 1.6.0' к {имя проекта} Успешно добавлено 'WebGrease 1.6.0' к {имя проекта} Удаление '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>

Имейте в виду, что у меня не было проблемы на моей локальной машине, только на веб-сервере стадии. Я хотел сделать все возможное, чтобы решить проблему без обновления пакета, но это было единственное исправление, которое у меня было. 

7
joey

Многое перепробовал, но у меня это иногда работало. Проблемы с веб-смазкой, иногда проблемы с веб-оптимизацией. Это сработало для меня с Microsoft.AspNet.Web.Optimization 1.1.3

Update-Package WebGrease -Version 1.6
5
Ali Umair

При перенаправлении веб-смазки убедитесь, что у вас нет атрибута applyTo в вашем элементе assemblyBinding. Для меня я удалил это полностью.

 enter image description here

4
kenjamin

Олди но голди ...

Я работал над проектом MVC 5 в Visual Studio 2013, и у меня была та же проблема. Мы использовали Visual SVN для управления версиями, и я был единственным, кто столкнулся с этой проблемой.

Единственное, что сработало для меня, это:

  1. Удалите Microsoft.AspNet.Web.Optimization
  2. В командной строке Nuget выполните: install-package Microsoft.AspNet.Web.Optimization -Version 1.0.0

Это установит более старую версию Web.Optimization. Первоначально проект ссылался на версию 1.1.0. Проблема не в WebGrease, а в System.Web.Optimization.dll, который ссылается на старую несуществующую версию WebGrease.

Когда я запускал проект, он работал, но я хотел использовать ту же версию пакета, что и остальная команда. Итак, я попытался обновить, но ... ошибка вернулась ...

После этого я удалил проект (снова) и забрал его из SVN. К моему удивлению, он начал работать ... Дело в том, что я полностью удалил проект и несколько раз брал его из SVN. Я даже взял dll от коллеги, потому что думал, что, возможно, я получаю испорченные файлы из NuGet, но безрезультатно. 

Надеюсь, это кому-нибудь когда-нибудь поможет ... с Visual Studio 2016 и MVC 8 :)

4
Alex Albu

Я использовал "Install-Package Microsoft.AspNet.Web.Optimization" (текущая версия 1.1.3) для запуска веб-проекта , который не был выбран в консоли NuGet по умолчанию. 

Но NuGet has создал новый файл app.config , хотя web.config - это ожидается обновление.

Для меня это работало, чтобы переместить элемент WebGrease зависящий от сборки из app.config в web.config's <runtime><assemblyBinding>...</assemblyBinding></runtime>.

2
Anton Lyhin

Поскольку я не смог удалить с помощью консоли диспетчера пакетов, я вручную перешел к packages.config и закомментировал старую версию. 

2
user3557878

У меня была эта проблема во время развертывания.

Я скопировал WebGrease.dll в производство, но я также забыл обновить файл Web.Config.

<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
tno2007

Alreasy решил эту ошибку. Ситуация была проще, чем я думал. Когда вы устанавливаете из Nuget новую версию System.Web.Optimization, она имеет ссылку на 

// Ссылки: WebGrease, версия = 1.5.1.25624, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35

В то же время у меня есть версия 1.5.2.14234 WebGrease. Запущенный проект, у нас есть эта ошибка: не удалось загрузить файл или сборку WebGrease, версия = 1.5.1.25624

Итак, я пытаюсь проверить эту версию на nuget и был удивлен, что это не так ... но когда я создаю новый проект с VS - я получил его. Чтобы взломать эту ошибку, я пытаюсь установить ее в GAC ... но gac говорит мне, что эта библиотека не подписана. Понижение до версии System.Web.Optimization = 1.1.0.0, где ссылка:

// Ссылки: WebGrease, версия = 1.3.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35

и 1.3.0.0 сильно подписан - помог мне. Оно работает. После обновления webgrease у меня его версия = 1.6.5135.21930, и он работал отлично. 

В заключение, у меня есть мнение, что эта ошибка (не удалось загрузить файл или сборку WebGrease, версия = 1.5.1.25624) была вызвана тем, что библиотека System.Web.Optimization ссылается на неподписанную версию webgrease dll.

1
faradzen

Другие ответы не решили это для меня. Мы добавляем более новый проект API MVC 5, и он не играл в Nice с более старыми API MVC 2. После запуска обновлений пакета я получил упомянутую ошибку. Для меня было решено удалить ссылки WebGrease, добавленные NuGet в web.config оскорбительных проектов.

Для разрешения: Откройте файл web.config проекта (-ов), выбрасывая исключение, и удалите или закомментируйте зависимость, добавленную для WebGrease.

1
rjchicago

Вот что я сделал, чтобы обойти это,

  1. Я сохранил копию файла Web.config моего текущего (поврежденного проекта) в «Corrupted-Web.Config». и закройте проектное решение.
  2. Создано новое приложение с тем же типом моего закоренелого проекта. назвал это ProjTemp.
  3. Сохраните и запустите «PorjTemp», затем сохраните копию Web.Config в «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>

это то, что я сделал, чтобы это исправить, Решение на Github Сами, Oweis 4 Computer

0
Sami