2016-08-05 3 views
3

Ich erstelle einen Satz von Bibliotheken, die sowohl von .NET Core als auch von .NET 4.6.1 Projekten verwendet werden. Ich habe eine neue .NET Core-Klassenbibliothek erstellt und net461 als Framework hinzugefügt. Ich habe überprüft, dass die .NET Core-Bibliothek kompiliert und es gibt 4.6.1 Binärdateien im Debug-Ordner (zusammen mit netstandard1.6).Wie referenziere ich eine .NET Core-Klassenbibliothek mit mehreren Zielen aus einem 4.6.1-Projekt innerhalb derselben Lösung?

Die .NET Core-Bibliothek und die 4.6.1-Anwendung, die sie verwendet, befinden sich in derselben Visual Studio 2015-Lösung. Mit VS kann ich einen Verweis auf die .NET Core-Bibliothek aus der 4.6.1-Konsolenanwendung hinzufügen, aber alle Versuche, die Bibliothek zu verwenden, werden nicht kompiliert. Wird dieses Szenario in Visual Studio unterstützt oder muss ich den .NET Core in ein nugget-Paket verpacken und darauf verweisen?

Antwort

3

Ja, das funktioniert gut! Wenn Ihre .NET 4.6.1 Anwendung auch project.json/xproj verwendet, dann ist es so einfach wie:

"dependencies": { 
    "MySharedLibrary": { 
     "version": "1.0.0", 
     "target": "project" 
    } 
} 

Der target: project Wert NuGet in der lokalen Lösung für die Bibliothek suchen erzählt, statt in Ihrem Paket Quellen.

Wenn Ihre .NET 4.6.1-Anwendung ein .csproj-Projekt ist, müssen Sie auf die zukünftigen Tooling-Updates in Visual Studio warten (dies wird noch nicht unterstützt, wird aber funktionieren). Sie können dies umgehen, indem Sie ein NuGet-Paket aus Ihrer Bibliothek erstellen (mit dotnet pack) und es Ihrem Projekt als normales Paket hinzufügen - entweder durch das Hosting auf NuGet/MyGet oder Ihr eigenes local feed.

+1

Danke! Ich wusste nicht, dass ich das neue Projektformat verwenden musste. Ich wünschte, VS würde mir die Referenz nicht hinzufügen, wenn es nicht funktioniert. –

+0

@ErickT Hinzugefügt ein bisschen über die Verwendung von NuGet als Workaround. Ich habe das selbst gemacht, um meine neueren xproj-basierten Bibliotheken in csproj-basierte Projekte zu bringen. –

Verwandte Themen