Обновление 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")
Как разрешить эту ошибку.
Ответы
Ответ 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) в блокноте и удаляю все записи, связанные с этими двумя пакетами, выдает ауты, что есть проблема. Наконец, я снова устанавливаю эти два пакета через диспетчер пакетов и запускаю проект. Теперь все работает нормально.