我刚刚建立了一个新的 asp.net mvc 4 项目,结合使用最新的 .net 框架 (4.5) 和 Visual Studio 2012。在我添加了一些类、辅助项目等之后。我突然注意到我编译项目时收到 5 次相同的警告。警告指出:
ASPNETCOMPILER : warning CS1685: The predefined type 'System.Threading.Tasks.Task' is defined in multiple assemblies in the global alias; using definition from '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 网络项目)。当我独立编译它们时,这 3 个类库没有显示任何警告。它只是引发警告的 Web 项目,但 Web 项目引用了类库项目。 web项目引用:
- Antlr3.Runtime
- 微软.CSharp
- Microsoft.Web.Infrastructure
- 系统
- 系统数据
- 系统.Web.动态数据
- 系统.Web.实体
- 系统.Web.ApplicationServices
- System.ComponentModel.DataAnnotations
- 系统核心
- System.Data.DataSetExtensions
- 系统.Web.优化
- 系统.Xml.Linq
- 系统.Web
- 系统.Web.扩展
- System.Web.Abstractions
- 系统.Web.路由
- 系统.xml
- 系统配置
- 系统.Web.服务
- System.EnterpriseServices
- Newtonsoft.Json
- System.Net.Http
- System.Net.Http.Formatting
- System.Net.Http.WebRequest
- System.Web.Helpers
- 系统.Web.Http
- 系统.Web.Http.WebHost
- 系统.Web.Mvc
- 系统.Web.Razor
- 系统.Web.WebPages
- System.Web.WebPages.Deploymen
- System.Web.WebPages.Razor
- WebGrease
有人建议去哪里看吗?
提前致谢
BHD
更新 似乎更多人有类似的问题,就我而言,答案是: 我们在这里使用了一些公司库,它们确实使用了旧版本的框架 (3.5) 并导致了警告。
最佳答案
类似于文章C# Compiler Warning 1685 .检查是否有任何引用的程序集本身引用了不同版本的 mscorlib.dll。
获取DotPeek或 .NET Reflector并且您应该能够检查引用的程序集所引用的程序集版本。
关于c# - 预定义类型 'System.Threading.Tasks.Task' 在全局别名的多个程序集中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15408142/