我在VS2017 RC中創建一個新項目我添加一個控制檯庫和一個類庫。VS 2017 RC - 核心項目 - ClassLibrary和控制檯 - 框架不同
現在我可以看到框架被添加爲依賴關係。
但爲什麼核心控制檯沒有NetStandard.Library
?
相反,我可以看到Microsoft.NetCore.app
其結果是,當我嘗試用dotnet -run
我得到這個錯誤
[啓動控制檯應用程序![請在此輸入圖像描述] [2]] [2]
我在VS2017 RC中創建一個新項目我添加一個控制檯庫和一個類庫。VS 2017 RC - 核心項目 - ClassLibrary和控制檯 - 框架不同
現在我可以看到框架被添加爲依賴關係。
但爲什麼核心控制檯沒有NetStandard.Library
?
相反,我可以看到Microsoft.NetCore.app
其結果是,當我嘗試用dotnet -run
我得到這個錯誤
[啓動控制檯應用程序![請在此輸入圖像描述] [2]] [2]
因爲您已經安裝了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
}
}
對於netcoreapp和netstandard plea之間的區別檢查:What's the difference between the new netstandardapp and netcoreapp TFMs?。
當您在命令行上運行dotnet -run
時,需要安裝.NET Core SDK,它是.NET Core的單獨安裝。安裝VS2017 RC不會安裝此SDK。您可以下載.NET Core 1.1 SDK here
而不是發佈圖像不能直接從提示覆制文本? –
你的第二張圖片沒有上傳 – VMAtm