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

Не удалось загрузить файл или сборку "System.Web.WebPages.Razor, Version = 2.0.0.0

Я только что обновил пакеты в проекте MVC 3 (ASP.net 4), и теперь я получаю следующее сообщение об ошибке при доступе к странице в этом проекте:

Ошибка сервера в приложении "/MyApplication".

Не удалось загрузить файл или сборку "System.Web.WebPages.Razor, Версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'или одной из его зависимостей. Установленное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) Описание: Необработанное исключение произошло во время выполнение текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в код.

Сведения об исключении: System.IO.FileLoadException: не удалось загрузить файл или сборка" System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = нейтральная, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей. установленное определение манифеста сборки не соответствует сборке Справка. (Исключение из HRESULT: 0x80131040)

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

Необработанное исключение было создано во время выполнения текущий веб-запрос. Информация о происхождении и местонахождении исключение может быть идентифицировано с использованием трассы стека исключений ниже.

След загрузки сборок: следующая информация может быть полезна для определить, почему сборка "System.Web.WebPages.Razor, Версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 ' не удалось загрузить.

=== Информация о состоянии предварительной привязки === LOG: User = IIS APPPOOL\ASP.NET v4.0 LOG: DisplayName = System.Web.WebPages.Razor, Version = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 (Полностью указано) LOG: Appbase = file:///C:/.../LOG: Initial PrivatePath = C:...\bin Вызов сборки: Microsoft.Web.Helpers, Version = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35. === LOG: Это связывание начинается с контекста нагрузки по умолчанию. LOG: Использование файла конфигурации приложения: C:...\web.config LOG: использование хоста Файл конфигурации: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config LOG: Использование файла конфигурации машины из C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config. LOG: Послеполитическая ссылка: System.Web.WebPages.Razor, Версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 LOG: Попытка загрузки нового URL-адреса Файл:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary Файлы ASP.NET/.../cb62a7b2/327a0353/System.Web.WebPages.Razor.DLL. LOG: попытка загрузки нового URL-адреса Файл:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Файлы /.../cb62a7b2/327a0353/System.Web.WebPages.Razor/System.Web.WebPages.Razor.DLL. LOG: попытка загрузки нового URL-адреса Файл:///C:/LeGroupeHtmSVN/.../UpDir.Web/bin/System.Web.WebPages.Razor.DLL. WRN: сравнение названия сборки привело к несоответствию: майор Версия ERR: не удалось завершить настройку сборки (hr = 0x80131040). Исследование прекращено.

Трассировка стека:

[FileLoadException: невозможно загрузить файл или сборку 'System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей. установленное определение манифеста сборки не соответствует сборке Справка. (Исключение из HRESULT: 0x80131040)]
Microsoft.Web.Helpers.PreApplicationStartCode.Start() +0

[InvalidOperationException: инициализация запуска перед приложением метод Начало по типу Microsoft.Web.Helpers.PreApplicationStartCode бросил исключение со следующим сообщением об ошибке: Не удалось загрузить файл или сборку" System.Web.WebPages.Razor, Version = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'или одна из ее зависимостей. Установленное определение манифеста сборки не сопоставить ссылку на сборку. (Исключение из HRESULT: 0x80131040).]
System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 методы) +11711966
System.Web.Compilation.BuildManager.CallPreStartInitMethods() +465
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1167

[HttpException (0x80004005): инициализация запуска перед приложением метод Начало по типу Microsoft.Web.Helpers.PreApplicationStartCode бросил исключение со следующим сообщением об ошибке: Не удалось загрузить файл или сборку "System.Web.WebPages.Razor, Version = 2.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'или одна из ее зависимостей. Установленное определение манифеста сборки не сопоставить ссылку на сборку. (Исключение из HRESULT: 0x80131040).]
System.Web.HttpRuntime.FirstRequestInit(контекст HttpContext) +11700896 System.Web.HttpRuntime.EnsureFirstRequestInit(контекст HttpContext) +141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, контекст HttpContext) +4869125

----------------------------------------------- --------------------------------- Информация о версии: Microsoft.NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.0.30319.272

В моем файле web.config и в моем приложении я ссылаюсь на System.Web.WebPages.Razor v1.0.0.0:

  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" />
  </dependentAssembly>

Я даже не знаю, могу ли я использовать System.Web.WebPages.Razor v2.0.0.0 с .Net 4.

Теперь, как мне узнать, что ссылается на System.Web.WebPages.Razor v2.0.0.0?

4b9b3361

Ответ 1

как узнать, что ссылается на System.Web.WebPages.Razor v2.0.0.0?

Просто прочитайте свою исключение stacktrace:

Calling assembly : Microsoft.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Итак, вы используете Microsoft.Web.Helpers, который, в свою очередь, зависит от System.Web.WebPages.Razor, Version=2.0.0.0.

Ответ 2

Так просто. В консоли менеджера пакетов Nuget:

Обновление пакета Microsoft.AspNet.Mvc -Reinstall

Ответ 3

Эта проблема началась, когда я сделал "Удалить неиспользуемые ссылки". Веб-сайт по-прежнему работал на моей локальной машине, но после публикации не работал на сервере.

Remove unused references

Я исправил эту проблему, выполнив следующее:

  • Откройте "Консоль диспетчера пакетов" в Visual Studio
  • Удалить пакет Microsoft.AspNet.Mvc
  • Установочный пакет Microsoft.AspNet.Mvc

Ответ 4

После большой боли, поиска в Google и волосах, я закончил удаление MVC 4 с помощью nuget, удалив все ссылки на MVC, бритву и инфраструктуру из веб-конфигурации, удалив DLL из папки bin, а затем с помощью nuget переустановить все. Потребовалось меньше времени, чтобы выяснить, почему DLL не соответствует.

Ответ 5

В ASP.NET MVC 4 пространство имен не является System.Web.WebPages.Razor, но System.Web.Razor

Это сработало для меня, изменив ваш web.config.

Ответ 6

Я получал ту же ошибку после добавления ненужной ссылки на System.Web.Mvc. Я удалил все ссылки, которые мог найти, но ничего не работало. Я, наконец, удалил папку проекта bin, и ошибка исчезла после восстановления.

Ответ 7

Я удалил ASP.NET MVC 4 с помощью панели управления Windows, а затем переустановил ее, запустив AspNetMVC4Setup.exe (который я получил из https://www.microsoft.com/en-us/download/details.aspx?id=30683), и это устранило проблему для меня.

Другими словами, мне не нужно было использовать Nuget или Visual Studio.

Ответ 8

Я также получил эту ошибку и попробовал все, что мог найти в Интернете, и это не исчезло. В конце концов, я просто понизил MVC с 5.2.3 до 4.0.40804. Мне не нравится это решение, потому что в конечном итоге мне нужно будет использовать MVC 5, но он работает сейчас. Надеюсь, это поможет другим.

Ответ 9

Short:
У вас есть эта проблема с чистым проектом веб-API (и, следовательно, не нужна бритва), попробуйте добавить его в любом случае, перестроить, а затем удалить.

Длинная история:
У меня возникла эта проблема с совершенно новым чистым веб-API-проектом, за исключением того, что stacktrace указал "System.Web.Mvc" как Calling assembly (см. Ответ Darin). Никакой ссылки на MVC, Razor и ничего подобного в моем проекте, хотя...
Я решил добавить пакеты MVC (AspNet.Mvc, AspNet.WebPages и AspNet.Razor), чтобы проверить, была ли следующая проблема.
Приложение WebApi было запущено отлично. Затем я удалил одни и те же пакеты, и все было в порядке.

Надеюсь, это поможет кому-то.

Ответ 10

В некоторых случаях просто установите веб-страницу 2, чтобы решить эту проблему (разрешено в моем случае - развернуть на локальную веб-страницу с помощью веб-api)

https://www.microsoft.com/en-us/download/details.aspx?id=34600

Ответ 11

Если предыдущий рабочий проект сбой внезапно с указанной ошибкой, вы можете попробовать следующее решение.

  • Удалите папку bin соответствующего веб-проекта/сервиса.
  • Построить

Это сработало для меня.

Ответ 12

Для подобных ошибок привязки сборки могут помочь следующие шаги:

  1. Щелкните правой кнопкой мыши свое решение и выберите Управление пакетами Nuget для решения...
  2. перейдите на вкладку "Консолидация" (последняя вкладка) и проверьте, есть ли какие-либо различия между пакетами, установленными в разных проектах внутри вашего решения. особенно обратите внимание на проекты, на которые вы ссылаетесь, которые могут иметь более низкие версии, потому что они обычно менее заметны)
  3. специально объедините пакеты, связанные с вашей ошибкой сборки, и обратите внимание, что многие пакеты зависят от некоторых других пакетов, таких как *.code & *.api &...
  4. После разрешения всех предполагаемых консолидаций перестройте и перезапустите приложение и посмотрите, разрешены ли привязки сборки.

Ответ 13

Сначала я попробовал ответить Мухаммеду Эмаду - без радости. Потом я попробовал

git clean -x -d -f

что привело меня к новой ошибке "Roslyn", которую я смог исправить, вручную отредактировав мой .csproj.

Интересно, что после того, как я прочел немного дальше вниз по странице вопроса Рослина, я нашел другое предложение с еще большим количеством голосов (Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r). Думая, что лучше реализовать это, чем вручную редактировать .csproj, я отказался от своих изменений .csproj, но обнаружил, что мое решение все еще работает.

Итак, после всего этого, мне интересно, если бы ответ Мухаммеда (на этой странице) добился цели, если бы я просто сделал чистку сначала.

Ответ 14

Я получал ту же ошибку при обновлении MVC4 до версии MVC5. Сначала я обновил вызывающую сборку, которая зависела от

> System.Web.WebPages.Razor, Version=2.0.0.0

после этого обновил файлы web.config в папке Views, обновил следующие пакеты из

<configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
</configSections>

в

<configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
 </configSections>

а также обновляется

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

в

<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

эти шаги работают для меня