2016-07-28 18 views
10

ich eine .NET-Core-1.0-Klassenbibliothek haben, die .NET 4.6.1 und verweist auf die .NET-Standard Library 1.6.0 und Identität Rahmen 2.2.1Referenzierung mscorlib 4.0.0.0 von .NET-Core 1.0 Klassenbibliothek

Ziele

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" 
      ] 
     } 
    } 
} 

In meinem Projekt bin die Schaffung ich nur die Identität Modelle, welche die Basis Identität Rahmenmodelle (Benutzer, Rollen usw.) erweitern. Wenn ich zu kompilieren versuchen, dies geschieht ...

enter image description here

enter image description here

Irgendwelche Ideen, wie dieses Problem zu lösen?

+0

Haben Sie einen Verweis auf mscorlib v4.0.0.0 hinzugefügt? – Tim

+0

@Tim, nehme ich nicht an, da ich mir nicht sicher bin, wie ich das in einer .NET Core Klassenbibliothek tun würde – series0ne

+0

Wahrscheinlich genauso wie andere Abhängigkeiten hinzugefügt werden? In der Datei project.json? Ich bin mir nicht 100% sicher, da ich noch nicht viel mit .NET Core 1.0 gespielt habe. – Tim

Antwort

7

Es gibt zwei Probleme mit Ihrer Projektdatei hier, ein einfach zu beheben, einem unmöglich zu beheben;)

  • Ihr Projekt nicht Ziel net461 und netstandard1.6. Was dein project.json sagt, ist: Baue das Ziel für netstandard1.6 und lüge zu NuGet und behaupte, du bist net461 (das Lügen ist was import tut ... glaube mir nicht, schau es nach;)). Und da Ihr Project.json zu NuGet gelogen hat, konnten Sie Microsoft.AspNet.Identity.EntityFramework hinzufügen. Das gleichzeitige Hinzufügen von net461 und netstandard1.6 wird Ihnen auch nicht helfen, weil Sie die Abhängigkeit dann nicht hinzufügen können.
  • Die NuGet-Abhängigkeit Microsoft.AspNet.Identity.EntityFramework ist im Jahr 2015 veröffentlicht und basiert auf dem .NET Framework (mscorlib basiert) und nicht auf .NET Standard/.NET Core (System.Runtime basiert). Das Lügen hilft nicht darüber, dass die Abhängigkeit auf mscorlib und nicht System.Runtime basiert.

Was könnten Sie versuchen, zielt (richtig) parallel net461 und netstandard1.6 und versuchen, eine parallele Implementierung mit Microsoft.AspNet.Identity.EntityFramework und Microsoft.AspNetCore.Identity.EntityFrameworkCore jeweils mit #ifdefs zu tun. Allerdings, wie nützlich das Ergebnis wäre, habe ich keine Ahnung für, was die resultierende Bibliothek würde verwendet werden;)

+1

Spektakuläre Antwort. Vielen Dank! – series0ne

+1

Vielen Dank! Ich habe diese Erklärung für Stunden gesucht !!! –

9

Microsoft hat ein Nuget-Paket, das helfen kann. Ich weiß nicht, die Besonderheiten, wie es funktioniert, aber es ist meine Abhängigkeitsprobleme behoben:

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

Oder einfach diese Konsole im Paket-Manager ausgeführt werden:

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

edit: Dies wurde hinzugefügt zu einem .net Core 1.1-Projekt.

+0

Erstaunlicherweise hat das funktioniert, danke! –

+0

Danke Mann. Arbeite wie ein Zauber – Butsaty