2016-11-28 92 views
1

我在VS2017 RC中創建一個新項目我添加一個控制檯庫和一個類庫。VS 2017 RC - 核心項目 - ClassLibrary和控制檯 - 框架不同

現在我可以看到框架被添加爲依賴關係。

但爲什麼核心控制檯沒有NetStandard.Library

相反,我可以看到Microsoft.NetCore.app

enter image description here

其結果是,當我嘗試用dotnet -run

我得到這個錯誤

[啓動控制檯應用程序![請在此輸入圖像描述] [2]] [2]

+0

而不是發佈圖像不能直接從提示覆制文本? –

+0

你的第二張圖片沒有上傳 – VMAtm

回答

1

因爲您已經安裝了1.1.0的SDK/build-tools,但沒有安裝共享框架1.1.0。
SDK和共享框架不是一回事。

也許最好用Linux命令行來解釋。 你如果有機會,你現在已經安裝了什麼是

apt-get install dotnet-dev-1.0.1 

但什麼你缺少的是

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

而更深層次的原因是,你有 的apt-get安裝的dotnet-dev亡1.0.1

,而不是

apt-get install dotnet-dev-1.1.0 

SDK版本1.1將安裝共享框架1.1.0,但如果您的SDK是1.0.1,則從未安裝1.1.0。

至於netstandard與netcore,大衛福勒有一個很好的解釋嘗試here
基本上,「.NET核心框架」和「.net框架非核心」的每一個版本的延伸版本netstandard,其中netstandard庫可以在兩個核心和非核心)可以使用:

具體,您的應用程序只能以.NET Core或.NET Framework的形式運行。沒有netstandard-app(當前),只有netstandard-libraries。

NetFramework_vX和NetCoreFramework_vX都是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 
    } 
} 
相關問題