dotnet CLI 使用什么 nuget 版本/nuget 功能何时进入 dotnet CLI?

dze*_*bdf 5 visual-studio nuget .net-core

我有一个特定的和更广泛的问题,我将使用特定的问题来说明更广泛的问题:

我的用例是我想使用此功能支持带有浮动版本的预发布包,它将在 Nuget 5.6 中可用,既可用于本地开发,也可用于我的 .NET Core 应用程序的 CI/CD 管道

所以基本上我想结合使用这个功能:

  1. 独立的 nuget.exe CLI(用于本地开发)
  2. Visual Studio(用于本地开发)
  3. dotnet CLI dotnet restore command(用于本地开发人员和我的管道)

对于(1),很简单,等5.6发布了就可以用了。

对于 (2),我在这里发现每个 Nuget 5.x 版本都在 Visual Studio 16.x 中可用,所以我想很有可能,当 Visual Studio 16.6 发布时,nuget 5.6 也将在那里使用. (找不到任何其他指定此内容的文档)

对于(3),我不知道。

所以我的具体问题/问题是:我什么时候才能使用像“*-*”这样的包参考版本,这些版本使用可用的最新版本或预发布版本,并且能够运行dotnet restore理解这一点的命令?nuget 5.6 一出?

我在这里发现

唯一的区别:dotnet restore 是调用 dotnet msbuild /t:Restore 的便利包装器,它调用 MSBuild 集成还原。这仅适用于包含 NuGet 的 MSBuild 发行版,例如 Visual Studio 2017(完整的 Visual Studio,构建工具)或 Mono 5.2+ (=> msbuild /t:Restore) 以及提供此便利命令的 .NET Core SDK。

但同样,使用哪个 nuget 版本?

但我由此产生的更广泛的问题是:dotnet CLI 使用什么 nuget 版本?您甚至可以说它使用特定的“版本”,还是仅包含与某个版本并不真正对应的 nuget 功能的某个子集?是否有任何文档/流程指定 nuget 的功能何时进入 dotnet CLI?

Mr *_*ian 13

dotnet CLI 使用什么 nuget 版本?您甚至可以说它使用特定的“版本”,还是仅包含 nuget 功能的某个子集,而这些功能与版本并不真正对应?

由于Net Core 2.1, dotnet cli 包含部分nuget.exe cli功能子集而不是完整功能子集nuget.exe cli,例如打包项目、推送包、删除包、恢复包等。

每个dotnet cli对应一个版本的nuget.exe cli.

事实上,每个net core sdk版本都会集成相应版本的一些功能nuget.exe cli,然后更名为其特殊的nuget版本。

例如, sdk集成了nuget exe 5.5.0Net Core 3.1的部分功能,然后将其自己的dotnet nuget版本称为(在CMD中调用即可看到),而相关版本为.5.5.0.4dotnet nuget --versionnuget.exe cli5.5.0.6382

归根结底,它们之间的功能是相同的,只是设置了不同的版本号来区分。

Nuget.exe cli 版本:

在此输入图像描述

dotnet nuget 版本

在此输入图像描述

结果, Net Core 3.0 sdk 集成了部分nuget.exe 5.3.1.6368并创建了自己的 dotnet nuget 版本 5.3.0.1

实际上,你可以在这个路径下看到本节中的nuget目标文件和相应的函数DLL:C:\Program Files\dotnet\sdk\3.1.200并且你可以看到nuget函数的这些部分。

在此输入图像描述