安装KB2993928后,ASP.NET MVC4解决方案无法构建

Ola*_*ers 11 msbuild asp.net-mvc gac fxcop windows-update

我们有一个ASP.NET MVC 4解决方案,其中有两个参考文献已经建立了大约2年没有问题.但是,在今天早上安装KB2993928KB2993937后,我们无法在Windows 7机器上运行此解决方案的FxCop.

我有一种感觉这是因为此更新更改了GAC中System.Web.Mvc程序集的DLL版本.这是因为在GAC中我现在可以找到3个不同的System.Web.Mvc DLL,它们今天都在更新.

我们在构建中收到的错误如下:

6>MSBUILD : error : CA0001 : The following error was encountered while reading module 'FrontEnd.Implementation': Assembly reference cannot be resolved: System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35. [C:\Project\FrontEnd\02-Implementation\02-Implementation.csproj]
6>MSBUILD : error : CA0058 : The referenced assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be found. This assembly is required for analysis and was referenced by: S:\Deliverables\FrontEnd\bin\FrontEnd.Implementation.dll. [C:\Project\FrontEnd\02-Implementation\02-Implementation.csproj]
Run Code Online (Sandbox Code Playgroud)

由于我们使用ASP.NET MVC 4,因此我们的一个引用间接引用了此3.0版DLL.例如,RazorGenerator引用了3.0.0.0版.也可能是其他人.据我所知,没有新版本的RazorGenerator.

我在GAC中看到的System.Web.Mvc版本是:3.0.50813.1,4.0.40804.0和5.0.20821.0.

我从项目中删除了对System.Web.Mvc的引用,并将Mvc添加为NuGet包.这修复了我们的编译,但由于间接引用,FxCop仍然无法正常工作.

如果需要任何其他信息,请告诉我.

小智 1

如果此问题是由依赖于这些特定程序集的引用引起的,您可以通过强制 FxCop 仅使用 StrongName 并忽略版本号来解决此问题。此处描述了该解决方案。

当然,真正的解决方案是将引用的程序集(具有间接依赖项)更新到较新的版本。