2013-03-14 11 views
12

Właśnie utworzyłem nowy projekt asp.net mvc 4, używając najnowszego frameworka .net (4.5) w połączeniu z Visual Studio 2012. Po dodaniu kilku klas, projektów pobocznych itp. Nagle zauważam, że otrzymuję 5 razy to samo ostrzeżenie podczas kompilacji projektu. Stany ostrzegawcze:Predefiniowany typ "System.Threading.Tasks.Task" jest zdefiniowany w wielu złożeniach w globalnym aliasie

ASPNETCOMPILER: CS1685 Ostrzeżenie: predefiniowany typ 'System.Threading.Tasks.Task' zostało zdefiniowane w wielu zespołach w globalnej alias ; stosując definicję z 'C: \ Program Files (x86) \ referencyjny zwoje \ Microsoft \ Framework.NETFramework \ v4.5 \ pliku mscorlib.dll'

Więc teraz zastanawiam się, w którym zespoły są tego typu zdefiniowano niż? Wszystkie moje projekty w rozwiązaniu używają wersji 4.5 architektury .net, więc 4.5 \ mscorlib.dll powinno być jedynym lub czy czegoś brakuje?

Moje rozwiązania składa się z 4 projektów (3 biblioteki klas i 1 projekt web mvc-4). Biblioteki 3-klasowe nie wyświetlają żadnych ostrzeżeń podczas ich niezależnej kompilacji. To tylko projekt internetowy rzuca ostrzeżenia, ale projekty bibliotek klasowych są przywoływane przez projekt internetowy. Odniesienia do projektu internetowej:

  • Antlr3.Runtime
  • Microsoft.CSharp
  • Microsoft.Web.Infrastructure
  • systemu
  • 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. Przedłużanie
  • System.Web.Abstractions
  • System.Web.Routing
  • Sy stem.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

Czy ktoś ma sugestia, gdzie szukać?

góry dzięki

BHD

UPDATE Wydaje się, że coraz więcej ludzi ma podobne problemy jak ten, w moim przypadku odpowiedź brzmiała: używamy tu jakieś biblioteki Spółki, które były rzeczywiście używanie starszych wersji frameworka (3.5) i powodowało ostrzeżenia.

+0

Czy na komputerze, na którym to się dzieje, wcześniej były zainstalowane inne wersje programu .NET 4.5 lub .NET 4.0? –

+2

Twoja wiadomość nie określa, czym jest inny zestaw. W tym samym projekcie, który daje ostrzeżenie CS1685, wypróbuj tę zmienną: 'global :: System.Threading.Tasks.Task test = null;'. Powinien dać ci kolejny błąd, np. 'Error CS0433: Typ 't' istnieje zarówno w" x ", jak i" y ", gdzie' x' i 'y' są dwoma złożonymi pytaniami. –

+0

Dobre myślenie Jeppe, spróbowałem, ale bez powodzenia. Wciąż ostrzeżenia, bez błędu. –

Odpowiedz

7

Podobne do artykułu C# Compiler Warning 1685. Sprawdź, czy któryś z przywoływanych złożeń sam odwołuje się do różnych wersji pliku mscorlib.dll.

Zdobądź DotPeek lub .NET Reflector i powinieneś być w stanie sprawdzić, do których odwołują się wersje zestawów, do których odwołują się zwoływane złożenia.

+1

Zgadzam się. Szczególnie sprawdź, czy 'Antlr3.Runtime',' Newtonsoft.Json' lub 'WebGrease' odnoszą się do innych wersji' mscorlib.dll', na przykład do niektórych wersji .NET 4.0. Może spojrzeć na numery wersji w pliku projektu? –

+0

To jest koniec, w którym sprowadza się. Ale ponieważ jest to nowy/czysty projekt, zastanawiałem się, za którą odpowiedzialność odpowiada mvc. Właśnie zainstalowałem reflektor, w jaki sposób mogę sprawdzić zależności moich zależności? –

+0

@BlackHawkDesign: Jeśli otrzymasz DotPeek, upuść swój zestaw do eksploratora zespołu. Będziesz mógł zobaczyć swoje zależności i ich wersje. Kliknij dwukrotnie każdą zależność, aby załadować i sprawdzić zależności. – Phil

Powiązane problemy