2016-07-28 11 views
10

Mam .NET rdzenia 1,0 bibliotekę klas, które kierowaną .NET 4.6.1 i odwołuje się do standardowej biblioteki .NET 1.6.0 i tożsamość Framework 2.2.1Odwoływanie mscorlib 4.0.0.0 z .NET 1.0 klasy podstawowej biblioteki

project.json

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
     "Microsoft.AspNet.Identity.EntityFramework": "2.2.1", 
     "System.Runtime": "4.1.0", 
     "NETStandard.Library": "1.6.0" 
    }, 

    "frameworks": { 
     "netstandard1.6": { 
      "imports": [ 
       "net461" 
      ] 
     } 
    } 
} 

W moim projekcie mam tylko tworzenie modeli tożsamości, które rozciągają się modele Framework baza Identity (Użytkownik, Rola etc). Kiedy próbuję skompilować, to dzieje ...

enter image description here

enter image description here

Wszelkie pomysły jak rozwiązać ten problem?

+0

Czy dodano odniesienie do mscorlib v4.0.0.0? – Tim

+0

@ Tim, nie zakładam, ponieważ nie jestem pewien, jak to zrobić w bibliotece klasy .NET Core – series0ne

+0

Prawdopodobnie w ten sam sposób, co inne zależności są dodawane? W pliku project.json? Nie jestem w 100% pewny, ponieważ jeszcze nie grałem z .NET Core 1.0. – Tim

Odpowiedz

7

Istnieją dwa problemy z pliku projektu tutaj, jeden prosty do naprawienia, jeden nie da się naprawić;)

  • swój projekt nie TARGET net461 i netstandard1.6. To, co mówi twój project.json: Zbuduj cel dla netstandard1.6 i skłam temu NuGetowi i twierdz, że jesteś net461 (to kłamstwo jest tym, co import robi ... nie wierz mi, poszukaj;)). A ponieważ twój project.json kłamał NuGetowi, możesz dodać Microsoft.AspNet.Identity.EntityFramework. Równoczesne dodawanie net461 i netstandard1.6 również nie pomoże, ponieważ nie można wtedy dodać zależności.
  • Zależność NuGet Microsoft.AspNet.Identity.EntityFramework została wydana w 2015 roku i w oparciu o .NET Framework (oparty na mscorlib), a nie na .NET Standard/.NET Core (oparty na System.Runtime). Kłamstwo nie pomaga w tym, że zależność jest oparta na mscorlib, a nie System.Runtime.

Co można spróbować, jest kierowana (prawidłowo) równolegle net461 i netstandard1.6 i spróbować zrobić równoległą realizację z Microsoft.AspNet.Identity.EntityFramework i Microsoft.AspNetCore.Identity.EntityFrameworkCore stosując odpowiednio #ifdefs. Jednak, jak użyteczny byłby wynik, nie mam pojęcia, do czego zostanie użyta biblioteka wynikowa;)

+1

Spektakularna odpowiedź. Dziękuję Ci! – series0ne

+1

Dziękuję za tonę! Szukałem tego wyjaśnienia godzinami !!! –

9

Firma Microsoft ma pakiet nuget, który może pomóc. Nie znam szczegółów, jak to działa, ale to rozwiązać moje problemy z zależnościami:

https://www.nuget.org/packages/Microsoft.NETCore.Portable.Compatibility/

Albo po prostu uruchomić to w konsoli menedżera pakietów:

Install-Package Microsoft.NETCore.Portable.Compatibility -Version 1.0.1 

edit: został dodany do projektu .net core 1.1.

+0

O dziwo, to zadziałało, dzięki! –

+0

Dziękuję człowieku. Działaj jak czar – Butsaty

Powiązane problemy