【发布时间】:2014-12-10 16:44:42
【问题描述】:
我们有一个 ASP.NET MVC 4 解决方案,其中包含几个参考资料,该解决方案已经构建了大约 2 年,没有出现任何问题。然而,在今天早上安装了KB2993928 和KB2993937 之后,我们无法再在我们的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]
由于我们使用 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 仍然无法工作。
如果需要任何其他信息,请告诉我。
【问题讨论】:
-
尝试为MVC4添加程序集绑定stackoverflow.com/questions/10402005/…
-
MVC3 的同样问题。
-
MajoB:我试过了,但我认为它是用于运行时的。我目前的问题是让它甚至构建(或运行 FxCop)。
标签: asp.net-mvc msbuild gac fxcop windows-update