迷失在版本和工具中:.NET核心,核心工具,dotnet核心CLI,

好吧,作为一个新的.net开发生态系统,我在Core工具,版本等方面都迷失了方向。

有人能解释我之间的区别吗?

  • 核心工具预览x为VS 2015 – 看到这里
  • .NET Core / SDK与否(1.0,1.0.1,1.1) – 请参阅此处
  • 核心CLI SDK预览2,3,4,5 – 请参阅此处

什么是预览,它们​​如何与主版本编号相关?

Core的版本本身对于新手来说似乎很奇怪

  • 当您进入下载页面时: https : //www.microsoft.com/net/download/core#/current/sdk
  • 你可以看到下载的.NET Core 1.1 SDK – 安装程序给你dotnet-dev-win-x64.1.0.0-preview2-1-003177.exe
    • 1.0.0 ??
  • 在同一页上,你可以下载* Visual Studio 2015工具(预览版2)*,它给你DotNetCore.1.0.1-VS2015Tools.Preview2.0.3
    • 1.0.1?

在dotnet核心的github仓库中 ,我们可以看到有一些工具可用于各种版本:

1.0.3发布2016年12月13日

1.1发布2016年11月16日

1.1.0预览1发布10/24/2016

1.0.2发布2016年10月17日

1.0.1发布9/13/2016

1.0.0发布2016/6/27 RC2发布2016/5/16 RC1发布2015/11/18

在dotnet CLI repo (我不知道它的构build工具?),我们可以看到他们正在讨论preview4,但在下载链接中,一切都标记为预览5.他们谈论下载一个.NET核心SDK安装程序 :是否有SDK核心安装程序,所以另一个版本,或者是不好的名称,实际上只有CLI? 或者SDK是否包含CLI,在哪个版本中呢?

它给你一个dotnet-win-x64.latest.exe似乎安装.NET Core 1.0.1 Preview 5 …

最后,在Azure上,Web应用程序控制台将为您提供:

dotnet --version D:\home\site\wwwroot 1.0.0-preview3-004056 

WAOOOW:有点失落…

什么是正确的工具,以什么正确的版本开始一个新的项目,并在Azure上正确部署?

你在这里混淆了一些概念。 仅仅因为稍后发布版本,并不意味着它具有更多的function。 .NET Core 1.0是一个LTS版本,将会提供2到3年iirc的更新。

所以即使在1.1版本发布之后,也会有1.0的维护修复错误或者安全问题。 这在软件开发中一直是这样,请看Java。 当Java 1.8发布时,Java 1.7仍然有更新。

.NET Core SDK包含用于还原软件包,构build,部署和运行.NET Core应用程序的dotnet cli工具,还包含提供框架DLL的.NET Core运行时(如.NET Framework 4.x安装程序)您需要运行便携式应用程序。

.NET Core运行时/ SDK独立于CLI工具,也可以通过nuget包得到。

Visual Studio 2015/2017的.NET核心工具只是一套工具,它允许Visual Studio添加对新项目types和构buildpipe道的支持。

VS的.NET核心工具也包含SDK /运行时。

您需要在Azure上运行的内容取决于您的需求以及Azure App Service实例上安装的运行时types,因为它们通常落后于常规版本。

即,如果创build自包含的应用程序(使用.NET Core运行时进行部署),则可以使用任何版本,因为每个应用程序都有自己的可以并行运行的运行时。

如果要运行可移植应用程序(部署时不带有.NET Core框架库),则需要在Azure App Service上安装正确的运行时(Azure博客通常在新运行时可用时发布)。

所有其他取决于你的开发环境。

TL; DR:如果你

  • 使用Visual Studio 2015:安装Visual Studio 2015工具(预览2)*
  • 使用Visual Studio 2017:下载Visual Studio 2017
  • 不要使用Visual Studio,但要为.NET Core开发/安装.NET Core SDK
  • 不要使用Visual Studio,但要运行.NET Core Appl:安装.NET Core Runtime

要么

  • .NET Core Runtime(1.0.x或1.1.x):只是运行时
  • dotnet-cli:只需构build/部署工具
  • .NET核心SDK:运行时+ dotnet-cli
  • 用于Visual Studio的.NET Core Tools:Runtime + dotnet-cli + Visual Studio集成(和新的项目模板)

cli-tools和Visual Studio Tools还没有完成,因此在预览。 他们应该使用VS2017和基于MSBuild的新项目结构(从xproj移到csproj文件)一起去RTM,但是这不会影响运行时/ SDK的状态。