asp.net-mvc – 安装KB2993928后,ASP.NET MVC4解决方案无法构建

我们有一个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,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仍然无法正常工作.

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

解决方法

如果这个问题是由依赖于这些特定程序集的引用引起的,那么可以通过强制Fxcop来仅使用StrongName并忽略版本号来解决这个问题.该解决方案描述为 here.

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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....