Wie lässt sich ein Visual Studio 2015 xproject (project.json) auf das höchste Framework eines abhängigen Projekts verweisen?

8

Ich erstelle eine wiederverwendbare Bibliothek, die auf verschiedene Plattformen abzielt (.NET 4.0, .NET 4.5, .NETStandard 1.0 und .NETStandard 1.3). Die .NET 4.5-Version dieses Projekts enthält einige Funktionen, die unter der .NET 4.0-Version nicht verfügbar sind.

Das Komponententestprojekt, das auf dieses Bibliotheksprojekt verweist, hat eine einzige Zielplattform, nämlich NET 4.5.1. Dieses Testprojekt enthält offensichtlich Code, der die .NET 4.5-spezifischen Features der Core-Bibliothek testet.

Leider kompiliert das Testprojekt jedoch nicht, da Visual Studio auf die Version .NETStandard 1.0 zu verweisen scheint, die diese Funktion offensichtlich nicht enthält.

Um mein Problem zu demonstrieren, habe ich das auf die folgenden zwei Projekte reduziert:

Hauptbibliothek:

%Vor%

Code-Datei:

%Vor%

Testbibliothek:

%Vor%

Code:

%Vor%

Was muss ich ändern, damit mein Einheitentestprojekt die spezifischen .NET 4.5-Funktionen kompilieren und testen kann?

    
Steven 20.11.2016, 20:49
quelle

1 Antwort

1

Es scheint einen Fehler in Visual Studio-Tools für .NET Core zu geben. Wenn Sie ein Multi-Framework-Projekt von einem anderen Framework aus referenzieren - Visual Studio nimmt nur das erste gelistete Framework aus einer Liste (in Ihrem Fall - "netstandard1.0") und behandelt das referenzierte Projekt als einzelnes Ziel für dieses Framework. Der Compiler handhabt dies jedoch korrekt, und während es scheint , baut das Projekt korrekt auf - in Wirklichkeit tut es das nicht. Wenn Sie andererseits ClassNet45 definition verwenden - es scheint , dass es nicht kompiliert wird (Visual Studio zeigt Fehler an) - es wird wirklich erfolgreich kompiliert.

Es scheint, dass Visual Studio-Tools für .NET Core noch nicht ausreichend ausgereift sind, aber wahrscheinlich wird dieser Fehler in naher Zukunft gelöst werden.

    
Evk 21.11.2016, 14:49
quelle