2016-11-28 3 views
1

Ich erstelle ein neues Projekt in VS2017 RC Ich füge eine Konsole lib und eine Klassenbibliothek.VS 2017 RC - Core Projekte - ClassLibrary und Konsole - Frameworks unterscheiden sich

Jetzt kann ich sehen, dass die Frameworks als Abhängigkeiten hinzugefügt werden.

aber warum hat die Kernkonsole nicht NetStandard.Library?

Stattdessen kann ich Microsoft.NetCore.app

enter image description here

Als Ergebnis sehen, wenn ich versuche, mit dotnet -run

ich diesen Fehler

[erhalten die Konsole App zu starten! [Treten Sie hier image description ] [2]] [2]

+0

Anstatt Bilder zu posten, können Sie Text nicht direkt von der Eingabeaufforderung kopieren? –

+0

Ihr zweites Bild wurde nicht hochgeladen – VMAtm

Antwort

1

herunterladen Da Sie die SDK/Build-Tools für 1.1.0 installiert haben, aber nicht das freigegebene Framework 1.1.0.
Das SDK und das gemeinsame Framework sind nicht dasselbe.

Vielleicht ist es am besten in Bezug auf Linux-Befehlszeile erklärt. Wenn Sie es hatte, was Sie gerade installiert haben, ist

apt-get install dotnet-dev-1.0.1 

aber, was Sie fehlt, ist

apt-get install dotnet-sharedframework-microsoft.netcore.app-1.1.0 

Und der tiefere Grund ist, dass Sie apt-get install Dotnet-dev- haben 1.0.1

statt

apt-get install dotnet-dev-1.1.0 

SDK In Version 1.1 wird das freigegebene Framework 1.1.0 installiert. Wenn Sie jedoch SDK 1.0.1 verwenden, wurde 1.1.0 noch nie installiert.

In Bezug auf Netstandard vs Netcore, David Fowler hat eine schöne Erklärung Versuch here.
Grundsätzlich erweitert jede Version von ".NET-Kern-Rahmen" und ".NET Framework Nicht-Kern" eine Version von netstandard, wo eine netstandard-Bibliothek kann sowohl in Kern- und Nicht-Core) verwendet werden: Konkret

, Ihre App kann nur als .NET Core oder als .NET Framework ausgeführt werden. Es gibt (derzeit) keine netstandard-app, nur netstandard-libraries.

Sowohl NetFramework_vX als auch NetCoreFramework_vX sind Obermengen von NetStandardLibray_vX.

using System; 

namespace Analogy 
{ 
    // Each interface represents a target framework and methods represents groups of APIs available on that target framework. 
    // The goal is to show the relationship between .NET Standard API surface and other .NET platforms 


    // .NET Standard 

    interface INetStandard10 
    { 
     void Primitives(); 
     void Reflection(); 
     void Tasks(); 
     void Collections(); 
     void Linq(); 
    } 

    interface INetStandard11 : INetStandard10 
    { 
     void ConcurrentCollections(); 
     void InteropServices(); 
    } 

    interface INetStandard12 : INetStandard11 
    { 
     void ThreadingTimer(); 
    } 

    interface INetStandard13 : INetStandard12 
    { 
     void FileSystem(); 
     void Console(); 
     void ThreadPool(); 
     void Process(); 
     void Sockets(); 

     void AsyncLocal(); 
    } 

    interface INetStandard14 : INetStandard13 
    { 
     void IsolatedStorage(); 
    } 

    interface INetStandard15 : INetStandard14 
    { 
     void AssemblyLoadContext(); 
    } 

    // .NET Framework 

    interface INetFramework45 : INetStandard11 
    { 
     void FileSystem(); 
     void Console(); 
     void ThreadPool(); 
     void Crypto(); 
     void WebSockets(); 
     void Process(); 
     void Sockets(); 

     void AppDomain(); 
     void Xml(); 
     void Drawing(); 
     void SystemWeb(); 
     void WPF(); 
     void WindowsForms(); 
     void WCF(); 
    } 

    interface INetFramework451 : INetFramework45, INetStandard12 
    { 
     // TODO: .NET Framework 4.5.1 specific APIs 
    } 

    interface INetFramework452 : INetFramework451, INetStandard12 
    { 
     // TODO: .NET Framework 4.5.2 specific APIs 
    } 

    interface INetFramework46 : INetFramework452, INetStandard13 
    { 
     // TODO: .NET Framework 4.6 specific APIs 
    } 

    interface INetFramework461 : INetFramework46, INetStandard14 
    { 
     // TODO: .NET Framework 4.6.1 specific APIs 
    } 

    interface INetFramework462 : INetFramework461, INetStandard15 
    { 
     // TODO: .NET Framework 4.6 specific APIs 
    } 

    // Mono 

    interface IMono43 : INetFramework46 
    { 
     void MonoSpecificApi(); 
    } 

    // Windows Universal Platform 

    interface IWindowsUniversalPlatform : INetStandard14 
    { 
     void GPS(); 
     void Xaml(); 
    } 

    // Xamarin 

    interface IXamarinIOS : INetStandard15 
    { 
     void AppleAPIs(); 
    } 

    interface IXamarinAndroid : INetStandard15 
    { 
     void GoogleAPIs(); 
    } 

    // .NET Core 

    interface INetCoreApp10 : INetStandard15 
    { 

    } 

    // Future platform 

    interface ISomeFuturePlatform : INetStandard13 
    { 
     // A future platform chooses to implement a specific .NET Standard version. 
     // All libraries that target that version are instantly compatible with this new 
     // platform 
    } 
} 
1

Für den Unterschied zwischen Netcoreapp und Netstandard Plädoyer überprüfen: What's the difference between the new netstandardapp and netcoreapp TFMs?.

Wenn Sie dotnet -run in der Befehlszeile ausführen, müssen Sie das .NET Core SDK installiert haben, das eine separate Installation von .NET Core ist. Durch die Installation von VS2017 RC wird dieses SDK nicht installiert. Sie können das .NET Core 1.1 SDK here

Verwandte Themen