迷失在版本和工具中:.NET Core,Core Tools,dotnet Core CLI,

Lost in versions and tools: .NET Core, Core Tools, dotnet Core CLI,

好吧,作为一个新的.NET开发生态系统,我有点迷失在核心工具、版本等方面。

有人能给我解释一下

  • 与2015年相比的核心工具预览X-请参见此处
  • .NET core/sdk与否(1.0、1.0.1、1.1)-请参见此处
  • core cli sdk预览版2、3、4、5-请参见此处

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

对新来者来说,核心版本本身似乎很奇怪。

  • 当您进入下载页面时: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-vs2015工具。预览版2.0.3:
    • 1.0.1?

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

1.0.3 released 12/13/2016

1.1 released 11/16/2016

1.1.0 Preview 1 released 10/24/2016

1.0.2 released 10/17/2016

1.0.1 released 9/13/2016

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

在dotnet cli repo上(我不认为它是构建工具?)我们可以看到他们在谈论预览4,但在下载链接中,所有内容都标记为预览5。他们讨论了下载.NET核心SDK安装程序:是否有sdk核心安装程序,所以是另一个版本,或者它的名称不正确,实际上它只是cli?或者sdk是否包括cli,在哪个版本中?

它为您提供了一个dotnet-win-x64.latest.exe,它似乎安装了.net core 1.0.1 preview 5…

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

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

有点迷路了…

正确的工具是什么,在什么正确的版本中启动一个新项目,并让它在Azure上正确地部署?


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

因此,即使在1.1发布之后,1.0的维护也会修复bug或安全问题。这在软件开发中一直是如此,请看Java。当Java 1.8发布时,仍然有Java 1.7的更新。

.NET核心SDK包含用于还原包、生成、部署和运行.NET核心应用程序的dotnet cli工具,还包含.NET核心运行时,它提供运行可移植应用程序所需的框架DLL(如.NET Framework 4.x安装程序)。

.NET核心运行时/sdk独立于cli工具,也可以通过nuget包获得。

Visual Studio 2015/2017的.NET核心工具只是一组工具,允许Visual Studio为新的项目类型添加支持并构建管道。

用于vs的.NET核心工具还包含sdk/runtime。

您需要在Azure上运行什么,取决于您的需要以及在Azure应用程序服务实例上安装了哪种运行时,因为它们通常比常规版本落后一点。

也就是说,如果您创建独立的应用程序,这些应用程序与.NET核心运行时一起部署,那么您就可以使用任何版本,因为每个应用程序都有自己的运行时,可以并行运行。

如果要运行可移植应用程序(部署时附带.NET核心框架库),则需要在Azure应用程序服务上安装正确的运行时(当新的运行时可用时,通常会发布Azure博客)。

其他一切都取决于您的开发环境。

DR:如果你

  • 使用Visual Studio 2015:安装Visual Studio 2015工具(预览2)*
  • 使用Visual Studio 2017:下载Visual Studio 2017
  • 不使用Visual Studio,但要为.NET核心开发/使用.NET核心:安装.NET核心SDK
  • 不使用Visual Studio,但要运行.NET核心应用程序:安装.NET核心运行时

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

CLI工具和Visual Studio工具尚未完成,因此处于预览状态。它们应该与vs2017和新的基于msbuild的项目结构(从xproj迁移到csproj文件)一起使用rtm,但这不会影响运行时/sdk的状态。