预定义类型“System.Threading.Tasks.Task”在全局别名中的多个程序集中定义

时间:2013-03-14 11:36:27

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-4.5

我刚刚建立了一个新的asp.net mvc 4项目,使用最新的.net框架(4.5)与Visual Studio 2012结合。在我添加了一些类,侧面项目等之后我突然注意到我是编译项目时收到5次相同的警告。警告说明:

  

ASPNETCOMPILER:警告CS1685:预定义类型   'System.Threading.Tasks.Task'在多个程序集中定义   全球别名;使用'c:\ Program Files(x86)\ Reference中的定义   组件\微软\ 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
  • Microsoft.CSharp
  • Microsoft.Web.Infrastructure
  • 系统
  • System.Data
  • System.Web.DynamicData
  • System.Web.Entity
  • System.Web.ApplicationServices
  • System.ComponentModel.DataAnnotations
  • System.Core程序
  • System.Data.DataSetExtensions
  • System.Web.Optimization
  • System.Xml.Linq的
  • 的System.Web
  • System.Web.Extensions程序
  • System.Web.Abstractions
  • System.Web.Routing
  • 的System.Xml
  • System.Configuration
  • System.Web.Services
  • 的System.EnterpriseServices
  • Newtonsoft.Json
  • System.Net.Http
  • System.Net.Http.Formatting
  • System.Net.Http.WebRequest
  • System.Web.Helpers
  • System.Web.Http
  • System.Web.Http.WebHost
  • System.Web.Mvc
  • System.Web.Razor
  • System.Web.WebPages
  • System.Web.WebPages.Deploymen
  • System.Web.WebPages.Razor
  • WebGrease

有没有人有建议在哪里看?

提前致谢

BHD

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

2 个答案:

答案 0 :(得分:7)

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

抓住DotPeek.NET Reflector,您应该能够检查引用的程序集引用的程序集版本。

答案 1 :(得分:1)

Visual Studio 输出可以为您提供有关哪些程序集正在触发此操作的详细信息。您将需要输出处于“详细”级别。转到(至少在 VS 2019 中):

工具 -> 选项 -> 项目和解决方案 -> 构建和运行

并为“MSBuild project build output verbosity”选择“Detailed”。

然后获取构建输出并查找诸如“...之间存在冲突”之类的内容。这应该列出引用程序集以及冲突的程序集版本。这些信息应该足以决定行动方案。