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

Posted

技术标签:

【中文标题】迷失在版本和工具中:.NET Core、Core Tools、dotnet Core CLI、【英文标题】:Lost in versions and tools: .NET Core, Core Tools, dotnet Core CLI, 【发布时间】:2016-12-24 16:20:17 【问题描述】:

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

谁能解释一下两者的区别

核心工具预览 x for VS 2015 - See here .NET Core / SDK 与否 (1.0, 1.0.1, 1.1) - See here 核心 CLI SDK 预览版 2、3、4、5 - See here

什么是预览,它们​​与主要版本编号有何关系?

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 Tools (Preview 2) *,它为您提供 DotNetCore.1.0.1-VS2015Tools.Preview2.0.3: 1.0.1 ?

在dotnet core github repository上,我们可以看到有一些不同版本的工具可用:

1.0.3 于 2016 年 12 月 13 日发布

1.1 于 2016 年 11 月 16 日发布

1.1.0 预览版 1 于 2016 年 10 月 24 日发布

1.0.2 于 2016 年 10 月 17 日发布

1.0.1 于 2016 年 9 月 13 日发布

1.0.0 于 2016 年 6 月 27 日发布 RC2 于 2016 年 5 月 16 日发布 RC1 于 2015 年 11 月 18 日发布

在dotnet CLI repo(我不明白它是构建工具?)上,我们可以看到他们在谈论预览4,但在下载链接中,所有内容都标记为预览5。并且他们谈论下载一个.NET Core 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 上正确部署?

【问题讨论】:

我觉得很痛 同样,微软在这方面做得非常糟糕。我也迷失在版本地狱中,还有github和nuget,两者或者他们看起来都很混乱。 实际上花了一个多小时来弄清楚如何安装 dotnet 1.1.2 而不是 2.0...他们的文档遗漏了一些东西 【参考方案1】:

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

因此,即使在 1.1 发布后,也会对 1.0 进行维护,以修复错误或安全问题。软件开发中一直都是这种情况,看看Java。 Java 1.8 发布时,Java 1.7 仍有更新。

.NET Core SDK 包含 dotnet cli 工具,用于恢复包、构建、部署和运行 .NET Core 应用程序,它还包含 .NET Core 运行时,它提供框架 DLL(如 .NET Framework 4 .x 设置),您需要运行便携式应用程序。

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

适用于 Visual Studio 2015/2017 的 .NET Core 工具只是一组允许 Visual Studio 添加对新项目类型和构建管道的支持的工具。

用于 VS 的 .NET Core 工具还包含 SDK/运行时。

您需要在 Azure 上运行什么,取决于您的需求以及 Azure 应用服务实例上安装的运行时类型,因为它们通常比常规版本稍有滞后。

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

如果您想运行可移植应用程序(部署时不附带 .NET Core 框架库),那么您需要在 Azure 应用服务上安装正确的运行时(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 运行时(1.0.x 或 1.1.x):只是运行时 dotnet-cli:只需构建/部署工具 .NET Core SDK:运行时 + dotnet-cli 用于 Visual Studio 的 .NET Core 工具:运行时 + dotnet-cli + Visual Studio 集成(和新项目模板)

cli-tools 和 Visual Studio 工具尚未完成,因此处于预览状态。他们应该与 VS2017 和新的基于 MSBuild 的项目结构一起使用 RTM(从 xproj 转移到 csproj 文件),但这不会影响运行时/SDK 的状态。

【讨论】:

感谢所有这些解释 :) 这真的很有帮助! 想解释一下 SDK 的版本控制吗?当我执行 dotnet --version 时,我得到的是运行时还是 SDK 的版本号?我如何获得其他“东西”的版本? dotnet --version 将始终显示工具的版本

以上是关于迷失在版本和工具中:.NET Core、Core Tools、dotnet Core CLI、的主要内容,如果未能解决你的问题,请参考以下文章

2022年11月 .NET CORE工具案例-.NET Core执行JavaScript

记一次asp.net core 线上崩溃解决总结

今日头条Marketing API小工具(.Net Core版本)

.Net Core 2 OpenID Connect 身份验证和多个身份

.net core 版本支持

小5聊Asp.Net Core 2.1 主要依赖那些dll和版本