2014-10-15 4 views
124

Я единственный, кто установил Windows Update (8.1) 15 октября, и вдруг MVC перестает работать из-за этого предупреждения?Обновление Windows вызвало отказ MVC3 и MVC4

Предупреждение 1 Не удалось устранить эту ссылку. Не удалось найти сборку «System.Web.Mvc, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL». Убедитесь, что сборка существует на диске. Если эта ссылка требуется для вашего кода, вы можете получить ошибки компиляции.

Похоже, что это обновление Windows устанавливает новую версию MVC с номером версии 4.0.0.1 и удаляет старую версию из папки программных файлов.

Кто-то знает, как исправить это, не сканируя для каждого проекта?

+0

Где эта ссылка? ПКК? Ссылочные сборки или нугет? – blowdart

+1

Прочтите [блог Microsoft] (http://blogs.msdn.com/b/webdev/archive/2014/10/16/microsoft-asp-net-mvc-security-update-broke-my-build.aspx) на причина. (Спасибо [e4rthdog] (http://stackoverflow.com/a/26418330/573634) за ссылку на это, просто комментируя, чтобы получить больше видимости) – Johannes

+0

Связано: ['System.Web.MVC' не копируется в' bin' папка с MS14-059] (http://stackoverflow.com/q/26467078/25124) –

ответ

105

Наилучшим решением является обновление DLL до версии 4.0.0.1. Try использование NuGet:

Install-Package Microsoft.AspNet.Mvc -Version 4.0.40804 -Project <your project name> 

Это будет автоматически обновлять

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" /> 
    </dependentAssembly> 

Вы просто должны изменить версию System.Web.Mvc вручную:

<compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
    <add assembly="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

+1

Yeap, просто замените ссылку GAC ссылкой NuGet. Работал для нас. – abatishchev

+7

Прочтите [блог Microsoft] (http://blogs.msdn.com/b/webdev/archive/2014/10/16/microsoft-asp-net-mvc-security-update-broke-my-build.aspx) на причина. (Спасибо [e4rthdog] (http://stackoverflow.com/a/26418330/573634) за ссылку на это, просто комментируя, чтобы получить больше видимости) – Johannes

+10

Любая идея, почему после выполнения вышеизложенного я получаю целую кучу этих предупреждения: «ASPNETCOMPILER: предупреждение CS1702: Предполагая сборку ссылок« System.Web.Mvc, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 »соответствует« System.Web.Mvc, Version = 4.0.0.1, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 ', вам может потребоваться предоставить среду выполнения "? – Farinha

24

Нам пришлось вручную коснуться каждый .csproj обновить версию от 4.0.0.0 к 4.0.0.1, чтобы получить наши сборки собираются. Довольно боль.

Новые ссылки должны выглядеть следующим образом:

<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" /> 
+3

Обратите внимание, что такое же изменение необходимо для MVC 3.0, ссылка должна быть «3.0.0.1», чтобы снова работать. – Andy

+0

В моем случае это было необходимо, а также необходимо было указать, что «Специфическая версия» «True» – pimbrouwers

23

Если бы тот же вопрос после обновления:

Обновление системы безопасности для Microsoft ASP.NET MVC 4.0 (KB2993928)
http://support.microsoft.com/kb/2993928

Но только для проекта со ссылкой на System.Web.Mvc, не установленным пакетом.

Мой коллега, который не установлен Microsoft ASP.NET MVC 4.0 Время воспроизведения и не получил обновление, не было никаких проблем и было до сих пор ссылка на 4.0.0.0, а не 4.0.0.1

я вручную изменил ссылку на 4.0.0. , после регистрации, мой коллега все еще мог построить со ссылкой на 4.0.0. .
(работа как на Win7 Pro SP1, VS2013 Pro Update 3)

3

для веб-проекта, возможно, придется обновить конфигурацию в web.config, а также:

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> 
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.1"/> 
    </dependentAssembly> 
21

Пожалуйста, смотрите этот блог, рекомендуемый способ обновить соответствующий NuGet пакет:

http://blogs.msdn.com/b/webdev/archive/2014/10/16/microsoft-asp-net-mvc-security-update-broke-my-build.aspx

Цитирую:

Проблемы может быть решено путем реализованных одним из следующих растворов:

  1. (Preferred) Установите Microsoft.AspNet.Mvc из галереи NuGet (это установит привязку перенаправление в вашем web.config). Вы можете сделать это от менеджера пакетов NuGet или консоли NuGet внутри Визуальный Студия:

    Install-Package Microsoft.AspNet.Mvc -Version -project Projectname

    MVC 4 версии: 4.0. 40804,0

    MVC 3 версии: 3.0.50813.1

  2. вручную обновить ссылку на System.Web.MVC.dll (не используйте один в GAC).

    Попробуйте добавить ссылку -> Ассембли -> Расширения.

1

Okay,

Для меня это было два простых шага:

Сначала я изменил все ссылки на System.Web.Mvc от 4.0.0.0 до 4.0.0.1,

Затем мне пришлось перейти к свойствам o f System.Web.Mvc (возможно, потому, что я удалил и повторно добавил его), и измените локальную копию на true.

Надеюсь, это полезно для кого-то.

1

Вам необходимо изменить все ссылки на System.Web.Mvc в своем решении. Просто удалите их и добавьте новую версию 4.0.0.1.

Также в смене свойств copy local на true.

И в сети.конфиг добавить привязку к Собрание указывает на новую версию: MVC

<runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" /> 
      </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
+0

Настройка 'CopyLocal = true' не помогла нам; см.: ['System.Web.MVC' не копируется в папку' bin' с MS14-059] (http://stackoverflow.com/q/26467078/25124) –

0

Если вы по-прежнему получать ту же ошибку после попытки @Krzysztof раствора или любой из других ответов выше, одна работа вокруг, которые могли бы работать для вас до удалитьMVC Время выполнения 4.0

 Смежные вопросы

  • Нет связанных вопросов^_^