代码之家  ›  专栏  ›  技术社区  ›  Maarten Kieft

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

  •  15
  • Maarten Kieft  · 技术社区  · 12 年前

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

    ASPNETCOMPILER:警告CS1685:预定义类型 在中的多个程序集中定义了“System.Threading.Tasks.Task” 全局别名;使用“c:\Program Files(x86)\Reference”中的定义 程序集\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.运行时
    • Microsoft.C竖琴
    • Microsoft.Web.基础结构
    • 系统
    • 系统数据
    • 系统Web.DynamicData
    • 系统Web.Entity
    • System.Web.ApplicationServices系统
    • System.ComponentModel.DataAnnotations系统组件模型数据注释
    • 系统.核心
    • 系统数据集扩展
    • 系统Web优化
    • 系统Xml.Linq
    • System.Web系统
    • 系统Web.Extensions
    • 系统Web摘要
    • 系统Web.Routing
    • 命名空间
    • 系统配置
    • 系统Web服务
    • 系统企业服务
    • Newtonsoft.Json公司
    • 系统网络Http
    • System.Net.Http.格式化
    • System.Net.Http.WebRequest系统
    • System.Web.Helpers系统帮助程序
    • 系统Web.Http
    • 系统Web.Http.WebHost
    • 系统Web.Mvc
    • 系统Web.Razor
    • 系统网页
    • System.Web.WebPages.Deploymen系统
    • System.Web.WebPages.Razor系统
    • WebGrease公司

    有人建议去哪里看吗?

    提前谢谢

    制动马力

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

    2 回复  |  直到 11 年前
        1
  •  8
  •   Community CDub    8 年前

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

    得到 DotPeek .NET Reflector 并且您应该能够检查被引用程序集所引用的程序集的版本。

        2
  •  4
  •   malat    3 年前

    Visual Studio输出可以为您提供触发此操作的程序集的详细信息。您需要在 "Detailed" 数量转到(在 VS 2019 至少):

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

    并选择 “详细信息” 对于对于 "MSBuild project build output verbosity" .

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