Windows更新导致MVC3和MVC4停止工作

Yog*_*rtu 125 .net asp.net-mvc windows-update asp.net-mvc-3 asp.net-mvc-4

我是唯一一个在10月15日安装了Windows Update(8.1)的人,突然MVC由于这个警告而停止工作了吗?

警告1无法解析此引用.无法找到程序集"System.Web.Mvc,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL".检查以确保磁盘上存在程序集.如果您的代码需要此引用,则可能会出现编译错误.

似乎这个Windows更新安装了版本号为4.0.0.1的更新版本的MVC,并从程序文件文件夹中删除旧版本.

有人知道如何在不爬行每个项目的情况下解决这个问题吗?

Krz*_*ski 106

最好的解决方案是将DLL更新到版本4.0.0.1.尝试使用nuget:

Install-Package Microsoft.AspNet.Mvc -Version 4.0.40804 -Project <your project name>
Run Code Online (Sandbox Code Playgroud)

这将自动更新

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

您只需在以下位置手动编辑System.Web.Mvc版本:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Run Code Online (Sandbox Code Playgroud)

  • 知道为什么,在完成上述操作之后,我得到了一大堆这些警告:"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',您可能需要提供运行时策略"? (10认同)
  • 阅读[微软博客](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)链接到此,只需评论以获得更多可见性) (7认同)
  • 没有@StefanHa,还没有找到修复程序.我注意到整个应用程序中有一堆对4.0.0.0的引用,在Views文件夹中的Web.config文件中,但即使手动更改了所有这些,警告仍然存在. (3认同)

小智 25

我们必须手动触摸每个.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" />
Run Code Online (Sandbox Code Playgroud)

  • 请注意,MVC 3.0需要进行相同的更改,引用应为"3.0.0.1"以使其再次运行. (3认同)

小智 23

更新后有同样的问题:

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.0,而不是4.0.0.1

我手动将引用更改为4.0.0 .1,办理登机手续后,我的同事仍然可以参考4.0.0进行构建.0.
(适用于Win7 Pro SP1,VS2013 Pro Update 3)


小智 21

请看这个博客,推荐的方法是更新相应的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 -Version -Project PROJECTNAME

    MVC 4版本:4.0.40804.0

    MVC 3版本:3.0.50813.1

  2. 手动更新对System.Web.MVC.dll的引用(不要使用GAC中的引用).

    尝试添加引用 - >程序集 - >扩展对话框.


e4r*_*dog 8

看到这个:Microsoft Asp.Net MVC安全更新MS14-059打破了我的构建!MS发表了关于它的博客,因为它显然带来了很多混乱