2017-04-19 10 views
1

Ich habe eine Bibliothek geschrieben mit .NET Core, targetting .netstandard2.0. Nach dieser site sollte es kompatibel sein, die Version einer .NET Core-Bibliothek mit .NET 4.6.2 und 4.6.1 zu verwenden. Allerdings, wenn ich versuche, meine .NET Framework-Bibliothek zu bauen, ich diesen Fehler:Target .NET Core-Klassenbibliothek Von .NET Framework 4.6.2 Klassenbibliothek

Project 'c:\myproj.csproj' targets '.NETStandard,Version=v2.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.6.2'.

ich Visual Studio 2017 bin mit den Bibliotheken zu bauen. Ist das nicht möglich/unterstützt und ich missverstehe nur die Informationen auf der Website? Die .NET Framework-Bibliothek referenziert System.Management.Automation und ist ein PowerShell-Modul, verweist jedoch auf Code in der .NET-Kernbibliothek, die auch in anderen Projekten verwendet wird.

+1

http://stackoverflow.com/questions/42254288/referencing-a-net-standard-library-from-a-windows-class-library/42364427#42364427 – meziantou

Antwort

0

Zum Zeitpunkt des Schreibens unterstützt VS 2017 nicht direkt tägliche Builds/Preview 2.0-Tools. Das SDK, das in VS 2017 (15.0, 15.1) enthalten ist, kennt netstandard 2.0 nicht, und auch nicht die integrierte Erweiterung von NuGet.

Weitere Informationen zu Problemumgehungen für die Verwendung von Vorschau-Tools in den derzeit veröffentlichten VS 2017-Versionen finden Sie unter https://github.com/aspnet/Announcements/issues/231.

+0

Ich hatte die gleichen Probleme targetting netstandard1.6 und netstandard1 .5 auch, also glaube ich nicht, dass dies spezifisch für 2.0 war. Ich habe versucht mit der Klassenbibliothek Targeting 1.6 und habe Project 'C: \ myproj.csproj' Ziele '.NETStandard, Version = v1.6'. Es kann nicht von einem Projekt referenziert werden, das auf ".NETFramework, Version = v4.6.2" abzielt. – hakenmt

+0

Dies ist, weil 4.6.2 nicht unterstützt 1.6 Bibliotheken mit der freigegebenen Tooling (1.0. *) –

+0

Hatte das gleiche Ergebnis mit .netstandard1.5, die die Website sagt, wird unterstützt mit 4.6.2. – hakenmt

2

beschloss ich dieses Problem, indem diese in der Tag-Platzierung:

<TargetFrameworks>netstandard2.0;net462</TargetFrameworks> 
    <TargetFrameworkIdentifier Condition="'$(_ShortFrameworkIdentifier)'=='net'">.NETFramework</TargetFrameworkIdentifier> 
    <TargetFrameworkIdentifier Condition="'$(_ShortFrameworkIdentifier)'=='netstandard'">.NETStandard</TargetFrameworkIdentifier> 

Das erlaubte mir, die .NET Framework-Klassenbibliothek zu bauen .NET Kernprojekt verweisen. Nicht was ich von der Dokumentation erwartet habe, da es so aussieht .netstandard ist das neue PCL, aber es funktioniert.

Verwandte Themen