Я пытаюсь обновить проект с MVC 4/EF 5 до MVC 5/EF 6. Я обновил фреймворк с 4.5 до 4.5.1, а затем из NuGet обновил решение MVC (4.0.30506.0 до 5.1.1) и EntityFramework (от 5 до 6.1.1). Это повлекло за собой зависимость Razor (2.0.30506.0 до 3.1.1) и WebPages (2.0.30506.0 - 3.1.1). Я отредактировал папку Project и Views web.config, чтобы отразить изменения и удалил GUID из csproj.
Когда я запускаю сайт в отладке, я получаю ошибку при загрузке папки Views web.config на - раздел name= "host" type = "System.Web.WebPages.Razor.Configuration.HostSection - строка.
"Произошла ошибка при создании обработчика раздела конфигурации для system.web.webPages.razor/host: Не удалось загрузить файл или сборку 'System.Web.WebPages.Razor, Version = 3.1.1"
У него нет проблемы в предыдущей строке (System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup) или с помощью ссылки Razor в корневой web.config. К сожалению, трассировка стека не идентифицирует вызывающую сборку.
Вызов сборки: (Неизвестно).
Все соответствующие файлы включены ниже.
Кто-нибудь знает, в чем проблема, и что еще важнее, как это исправить. Я обновил только минимальные пакеты NuGet: MVC и Entity Framework.
packages.config:
…
<package id="EntityFramework" version="6.1.0" targetFramework="net451" />
<package id="jQuery" version="2.0.2" targetFramework="net45" />
<package id="jQuery.UI.Combined" version="1.10.3" targetFramework="net45" />
<package id="jQuery.Validation" version="1.11.1" targetFramework="net45" />
<package id="knockoutjs" version="2.2.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.1.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc.FixedDisplayModes" version="5.0.0" targetFramework="net451" />
<package id="Microsoft.AspNet.Razor" version="3.1.1" targetFramework="net451" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net45" />
…
<package id="Microsoft.AspNet.WebPages" version="3.1.1" targetFramework="net451" />
<!-- oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" -->
…
web.config: root
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
…
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.1.1" newVersion="3.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.1.1" newVersion="5.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.1" newVersion="3.1.1" /> </dependentAssembly>
web.config: Views folder
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup>
…
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
…
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=5.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
ERROR PAGE:
Ошибка конфигурации Описание: Произошла ошибка при обработке файла конфигурации, необходимого для обслуживания этого запроса. Ознакомьтесь с конкретными сведениями об ошибках ниже и соответствующим образом измените свой файл конфигурации.
Сообщение об ошибке Parser: произошла ошибка при создании обработчика раздела конфигурации для system.web.webPages.razor/host: Не удалось загрузить файл или сборку "System.Web.WebPages.Razor, Version = 3.1.1, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей. Расположенное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Ошибка источника:
Line 4: <configSections>
Line 5: <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
Line 6: <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
Line 7: <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.1.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
Line 8: </sectionGroup>
Исходный файл: C:\Project\views\web.config Строка: 6
След загрузки сборки: следующая информация может быть полезна для определения того, почему сборка "System.Web.WebPages.Razor, Version = 3.1.1, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" не может быть загружена.
=== Информация о состоянии предварительной привязки === LOG: DisplayName = System.Web.WebPages.Razor, Version = 3.1.1, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 (Частичное) WRN: информация о частичной привязке была предоставлена для сборки: WRN: Название сборки: System.Web.WebPages.Razor, Версия = 3.1.1, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 | Идентификатор домена: 4 WRN: частичное связывание происходит, когда предоставляется только часть отображаемого имени сборки. WRN: Это может привести к тому, что связующее загрузит неправильную сборку. WRN: рекомендуется предоставить полностью определенный текстовый идентификатор для сборки, WRN: состоит из простого имени, версии, культуры и токена открытого ключа. WRN: см. Технический документ http://go.microsoft.com/fwlink/?LinkId=109270 для получения дополнительной информации и общих решений этой проблемы. LOG: Appbase = file:///C:\Project/ LOG: Initial PrivatePath = C:\Project\bin
Вызов сборки: (Неизвестно).
LOG: эта привязка запускается в контексте нагрузки по умолчанию. LOG: Использование файла конфигурации приложения: C:\Project\web.config LOG: Использование файла конфигурации хоста: C:\Users\xxx\Documents\IISExpress\config\aspnet.config LOG: Использование файла конфигурации машины из C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: политика не применяется к ссылке в это время (частное, пользовательское, частичное или привязку сборки на основе местоположения). LOG: попытка загрузки нового файла URL:///C:/Users/xxx/AppData/Local/Temp/Temporary ASP.NET Files/root/898b17f9/848c1fdf/System.Web.WebPages.Razor.DLL. LOG: попытка загрузки нового файла URL:///C:/Users/xxx/AppData/Local/Temp/Temporary ASP.NET Files/root/898b17f9/848c1fdf/System.Web.WebPages.Razor/System.Web.WebPages.Razor.DLL. LOG: попытка загрузки нового файла URL:///C:\Project/bin/System.Web.WebPages.Razor.DLL. WRN: сравнение названия сборки привело к несоответствию: незначительная версия ERR: Не удалось завершить настройку сборки (hr = 0x80131040). Исследование прекращено.
Информация о версии: Microsoft.NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.0.30319.18446