13

我刚刚建立了一个新的 asp.net mvc 4 项目,使用最新的 .net 框架(4.5)结合 Visual Studio 2012。在我添加了一些类、辅助项目等之后,我突然注意到我收到了 5 次当我编译项目时同样的警告。警告指出:

ASPNETCOMPILER:警告 CS1685:预定义类型“System.Threading.Tasks.Task”在全局别名的多个程序集中定义;使用来自 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\mscorlib.dll' 的定义

所以现在我想知道这种类型是在哪些程序集中定义的?我在解决方案中的所有项目都使用 .net 框架的 4.5 版,所以 4.5\mscorlib.dll 应该是唯一的,还是我遗漏了什么?

我的解决方案包含 4 个项目(3 个类库和 1 个 mvc-4 Web 项目)。当我独立编译这 3 个类库时,它们不会显示任何警告。只有 Web 项目会引发警告,但类库项目会被 Web 项目引用。web项目的参考:

  • Antlr3.Runtime
  • 微软.CSharp
  • Microsoft.Web.Infrastructure
  • 系统
  • 系统数据
  • System.Web.DynamicData
  • System.Web.Entity
  • System.Web.ApplicationServices
  • System.ComponentModel.DataAnnotations
  • 系统核心
  • System.Data.DataSetExtensions
  • 系统.Web.优化
  • System.Xml.Linq
  • 系统.Web
  • System.Web.Extensions
  • System.Web.抽象
  • 系统.Web.路由
  • 系统文件
  • 系统配置
  • 系统.Web.服务
  • System.EnterpriseServices
  • 牛顿软件.Json
  • System.Net.Http
  • System.Net.Http.Formatting
  • System.Net.Http.WebRequest
  • System.Web.Helpers
  • System.Web.Http
  • System.Web.Http.WebHost
  • 系统.Web.Mvc
  • System.Web.Razor
  • System.Web.WebPages
  • System.Web.WebPages.Deploymen
  • System.Web.WebPages.Razor
  • 网络润滑脂

有没有人建议在哪里看?

提前致谢

BHD

更新 似乎更多的人有类似的问题,在我的情况下,答案是:我们在这里使用一些公司库,这些库确实使用了旧版本的框架(3.5)并引起了警告。

4

2 回答 2

7

类似于文章C# Compiler Warning 1685。检查任何引用的程序集本身是否引用了不同版本的 mscorlib.dll。

掌握DotPeek.NET Reflector,您应该能够检查被引用程序集所引用的程序集版本。

于 2013-03-19T11:57:46.317 回答
3

Visual Studio 输出可以为您提供触发此事件的程序集的详细信息。您将需要输出处于该"Detailed"级别。去(VS 2019至少):

Tools -> Options -> Projects and Solutions -> Build and Run

并选择"Detailed"for "MSBuild project build output verbosity"

然后获取构建输出并寻找类似"There was a conflict between...". 这应该列出引用程序集以及冲突的程序集版本。该信息应该足以决定行动方案。

于 2020-12-22T18:02:20.300 回答