Центр обновления Windows вызвал MVC3 и MVC4 перестают работать


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

предупреждение 1 не удалось разрешить эту ссылку. Не удалось найти систему сборки".Сеть.В MVC, версия=4.0.0.0, культуры=нейтральный, значения PublicKeyToken=31bf3856ad364e35, параметр processorarchitecture=MSIL-код". Убедитесь, что сборка существует на диске. Если эта ссылка требуется вашим кодом, вы можете получить ошибки компиляции.

похоже, что это обновление windows устанавливает более новую версию MVC с номером версии 4.0.0.1 и удаляет старую версию из папки program files.

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

9 124

9 ответов:

лучшим решением является обновление DLL до версии 4.0.0.1. Попробуйте использовать 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>

вам просто нужно отредактировать версию системы.Сеть.В MVC вручную в:

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

мы должны были вручную коснуться каждого .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" />

была такая же проблема после обновления:

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

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

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

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

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

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

цитата:

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

  1. (Предпочтительно) Установите Microsoft.сеть САШ.Mvc из галереи NuGet (это установит привязку перенаправления в вашем интернете.конфигурация.) Вы можете сделать это из диспетчера пакетов NuGet или консоли NuGet внутри Visual Студия:

    Установить Пакет Microsoft.сеть САШ.Mvc-Version-Project имя_проекта

    версия MVC 4: 4.0.40804.0

    версия MVC 3: 3.0.50813.1

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

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

Это: Microsoft Asp.Net MVC Security Update MS14-059 сломал мою сборку! MS написал об этом в блоге, так как это, очевидно, принесло много путаницы

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

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

хорошо,

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

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

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

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

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

в свойствах изменить copy local в true.

и в интернете.config добавьте привязку assambly, чтобы указать на новую версию 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>

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