Подтвердить что ты не робот

Обновление WebGrease до версии 1.3.0 вызывает у меня ошибку

При обновлении WebGrease до версии 1.3.0 появляется ошибка:

Не удалось загрузить файл или сборку "WebGrease, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" или одну из его зависимостей. Расположенное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Ошибка источника:

Line 6:      <title>@ViewBag.Title</title>
Line 7:      @Styles.Render("~/Content/bundles/bootstrap")

Как разрешить эту ошибку.

4b9b3361

Ответ 1

Вот ответ, который сработал у меня, и это комбинация некоторых из вышеперечисленных ответов. Сначала установите/удалите/переустановите следующие пакеты:

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

Затем создайте копию содержимого ~/Views/Shared/_Layout.cshtml удалите файл _Layout.cshtml, заново создайте его и вставьте содержимое обратно.

Это последнее исправление, которое сработало для меня.

Ответ 2

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

Измените верхний код в Web.config на следующий

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

Ответ 3

Похоже, у вас есть ссылка на версию сборки (1.0.0.0?) (при условии, что текущая версия - 1.3.0.0). В этом случае вам нужно перенаправить сборку в web.config или еще лучше перекомпилировать ваши двоичные файлы для использования последней версии.

Другая возможность, если последняя версия использует ту же версию сборки, что и старая (1.0.0.0), вам нужно перекомпилировать свой код, чтобы использовать правильную сборку и убедиться, что используется правильная копия (проверьте GAC за неправильную, используйте fuslogv, чтобы выяснить, какой именно файл вызвал ошибку).

Ответ 4

У меня была такая же проблема. Другой разработчик обновил пакет WebGrease (как и другие), но что-то не синхронизировалось или не было проверено. Я редактировал файл пакета, чтобы удалить ссылки на существующий пакет. Затем я переустановил его через диспетчер пакетов. Наконец, я обновил пакеты.

Кажется, что пакеты не будут устанавливаться или обновляться, если файл package.config не соответствует файлам (включая правильные версии) в вашем проекте. В диспетчере пакетов ошибка не указана, но просто не удается обновить или установить пакеты.

Ответ 5

Комбинация следующего разрешила проблему для меня. Сначала выполните следующие команды в командной строке диспетчера пакетов (похожие на ответ, предоставленный sec_goat, но не точно такой же):

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

Затем, подобно Hriju, мне нужно было изменить эту строку в моем web.config:

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

в это:

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" />

Ответ 6

Переделка привязки, которая сработала для меня:

<dependentAssembly>
  <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.3.0.0"/> </dependentAssembly>
</assemblyBinding>

Тонкая разница: я не включил эту версию (1.3.0.0) в oldVersion attr.

неудачный пирог!

Ответ 7

У меня была аналогичная проблема, за исключением того, что это была не ошибка, а предупреждение. После обновления WebGrease до 1.3.0 сборка помещает источник предупреждения в объявление. Убедившись, что у меня была перенаправлена ​​соответствующая сборка в моем файле web.config, я в конечном итоге создал новое представление _Layout.cshtml и сохранил его поверх старого файла с той же разметкой бритвы, что и в предыдущем (copy/paste). После этого предупреждение ушло.

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

Если у кого-то есть представление о том, почему это работает, я все уши.

Ответ 8

Это проблема с Microsoft.AspNet.Web.Optimization(оптимизируйте движение вперед).

Вам нужно понизить WebGrease, удалив Оптимизацию и удалив любые перенаправления сборки WebGrease из web.config.

Затем переустановите Оптимизацию и убедитесь, что не обновить WebGrease.

Это быстрое решение, но оно заработало мою работу!

Ответ 9

Для проекта Web API я работаю над тем, что действительно работает:

  • Откройте диспетчер пакетов NuGet, нажмите Installed packages, а затем удалите Microsoft.AspNet.Web.Optimization. Он подскажет, что он удалит WebGrease 1.1.0. Нажмите Yes.

  • Теперь переустановите его, нажав вкладку NuGet Online и найдите Microsoft.AspNet.Web.Optimization.

Теперь все работает как ожидалось.

Ответ 10

Благодаря @roadsunknown. Моя конфигурация была заблокирована после того, как мой хост-компьютер застыл, что привело к тому, что моя виртуальная машина не выключилась должным образом. Чтобы решить эту проблему, я удалил Microsoft.AspNet.Web.Optimization через NuGet, затем пришлось удалить ссылку на WebGrease в packages.config и, наконец, переустановить Microsoft.AspNet.Web.Optimization через NuGet.

Ответ 11

Чтобы исправить это, я только что обновил файл package.config(WEBMATRIX)

<packages>
  <package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net40" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
  <package id="WebGrease" version="1.3.0" targetFramework="net40" />
</packages>

Ура!!!

Ответ 12

То же самое, что и Hriju и Nathan (удалить, переустановить и обновить), только вместо того, чтобы опустить атрибут newVersion, я сохранил его. Но поскольку WebGrease перешел с 1.1.0 прямо на 1.3.0, не было необходимости в 1.2.0 (как это было у jenson-button-event) (Удачи JB в Испании, кстати).

<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.3.0.0" />

Pedantic? Может быть, но это всегда в деталях, не так ли? Это исправило это для меня.

Во всяком случае, здесь, надеясь, что они сделают это правильно при следующем обновлении.

Ответ 13

Это то, что выглядит моя среда выполнения, и работает

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.3.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

Ответ 14

В моем случае все эти методы не сработали. Наконец, я разрешаю эту проблему, удалив пакеты Microsoft.AspNet.Web.Optimization и WebGrease Packages через диспетчер пакетов, затем открываю файл проекта (.csproj) в блокноте и удаляю все записи, связанные с этими двумя пакетами, выдает ауты, что есть проблема. Наконец, я снова устанавливаю эти два пакета через диспетчер пакетов и запускаю проект. Теперь все работает нормально.