Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The predefined type 'System.Threading.Tasks.Task' is defined in multiple assemblies in the global alias

I just have set up a new asp.net mvc 4 project, using the latest .net framework (4.5) in combination with Visual studio 2012. After I added some classes, side projects etc. I suddently notice that I'm receiving 5 times the same warning when I compile the project. The warning states:

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'

So now I'm wondering in which assemblies are this type defined than? All my projects in the solution are using version 4.5 of the .net framework, so 4.5\mscorlib.dll should be the only one or am I missing something?

My solutions consists of 4 projects ( 3 class libraries, and 1 mvc-4 web project). The 3 class libraries don't show any warnings when I compile them indepently. It's only the web project which throws the warnings, but the class library projects are referenced by the web project. The references of the web project:

  • Antlr3.Runtime
  • Microsoft.CSharp
  • Microsoft.Web.Infrastructure
  • System
  • 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

Does anyone have a suggestion where to look?

Thanks in advance

BHD

UPDATE It seems that more people have similar issues like this, in my case the answer was: We are using here some company libraries, which were indeed using older versions of the framework (3.5) and caused the warnings.

like image 252
Maarten Kieft Avatar asked Mar 14 '13 11:03

Maarten Kieft


2 Answers

Similar to article C# Compiler Warning 1685. Check if any of the referenced assemblies are themselves referencing different versions of mscorlib.dll.

Get hold of DotPeek or .NET Reflector and you should be able check what versions of assemblies the referenced assemblies are referencing.

like image 92
Phil Avatar answered Sep 28 '22 08:09

Phil


Visual Studio output can give you the details of which assemblies are triggering this. You will need the output to be at the "Detailed" level. Go to (in VS 2019 at least):

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

and select "Detailed" for for "MSBuild project build output verbosity".

Then grab the build output and look for something like "There was a conflict between...". That should list out the referencing assemblies, and the versions of the assembly that is in conflict. That info should be enough to decide on a course of action.

like image 36
K J Avatar answered Sep 28 '22 07:09

K J