[.net] Windows 업데이트로 인해 MVC3 및 MVC4 작동이 중지됨

내가 10 월 15 일에 Windows Update (8.1)를 설치 한 유일한 사람이며이 경고로 인해 갑자기 MVC가 작동을 멈 춥니 다.

경고 1이 참조를 해결할 수 없습니다. 어셈블리 “System.Web.Mvc, 버전 = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL”을 찾을 수 없습니다. 디스크에 어셈블리가 있는지 확인하십시오. 코드에이 참조가 필요한 경우 컴파일 오류가 발생할 수 있습니다.

이 Windows 업데이트는 버전 번호 4.0.0.1의 최신 MVC 버전을 설치하고 프로그램 파일 폴더에서 이전 버전을 제거하는 것으로 보입니다.

누군가 각 프로젝트를 크롤링하지 않고이 문제를 해결하는 방법을 알고 있습니까?



답변

가장 좋은 해결책은 DLL을 버전 4.0.0.1로 업데이트하는 것입니다. 너겟을 사용해보십시오.

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" />


답변

빌드를 진행 하려면 각 .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" />


답변

업데이트 후 동일한 문제가 발생했습니다.

Microsoft ASP.NET MVC 4.0 용 보안 업데이트 (KB2993928)
http://support.microsoft.com/kb/2993928

그러나 패키지로 설치되지 않은 System.Web.Mvc를 참조하는 프로젝트에만 해당됩니다.

Microsoft ASP.NET MVC 4.0 Runtime을 설치하지 않았고 업데이트를받지 못한 동료는 문제가 없었으며 4.0.0.1이 아닌 4.0.0.0에

대한 참조를 수동으로 참조를 4.0.0으로 변경했습니다. . 1 , 체크인 후에도 동료가 4.0.0을 참조하여 빌드 할 수 있습니다. 0 .
(Win7 Pro SP1, VS2013 Pro 업데이트 3에서 모두 작동)


답변

이 블로그를 참조하십시오. 권장되는 방법은 해당 NuGet 패키지를 업데이트하는 것입니다.

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

인용 :

다음 솔루션 중 하나를 구현하여 문제점을 해결할 수 있습니다.

  1. (권장) NuGet 갤러리에서 Microsoft.AspNet.Mvc를 설치합니다 (web.config에 바인딩 리디렉션이 설치됨). NuGet 패키지 관리자 또는 Visual Studio의 NuGet 콘솔에서이 작업을 수행 할 수 있습니다.

    설치 패키지 Microsoft.AspNet.Mvc-버전 -Project PROJECTNAME

    MVC 4 버전 : 4.0.40804.0

    MVC 3 버전 : 3.0.50813.1

  2. System.Web.MVC.dll에 대한 참조를 수동으로 업데이트하십시오 (GAC에서 참조를 사용하지 마십시오).

    참조 추가-> 어셈블리-> 확장 대화 상자를 사용해보십시오.


답변

이 참조 : 마이크로 소프트 Asp.Net MVC 보안 업데이트 MS14-059 내 빌드를 부러! MS는 분명히 많은 혼란을 가져 왔기 때문에 그것에 대해 블로그를 작성했습니다.


답변

웹 프로젝트의 경우 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>


답변

솔루션 내에서 모든 참조를 System.Web.Mvc로 변경해야합니다. 그냥 삭제하고 새로운 4.0.0.1 버전을 추가하십시오.

또한 속성 copy local에서 true로 변경하십시오 .

그리고 web.config에서 새 버전의 mvc를 가리 키도록 assambly 바인딩을 추가하십시오.

    <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>