Command line 为什么nuget命令行工具不遵循依赖关系?

Command line 为什么nuget命令行工具不遵循依赖关系?,command-line,nuget,Command Line,Nuget,根据这一问题: 命令行NuGet工具并非有意遵循依赖关系。虽然我可以将此理解为默认行为,但我觉得奇怪的是,没有选择让工具遵循依赖项。有人知道这背后的原因吗?这个答案特定于运行nuget install packages.config 指定packages.config时,仅安装明确列出的包 但是,如果尝试安装特定的包:nuget install My.package.Id,则nuget将安装该包和任何依赖项 编辑有关区别原因的其他信息 nuget安装实际上应该被称为nuget下载。它并不是传统

根据这一问题:


命令行NuGet工具并非有意遵循依赖关系。虽然我可以将此理解为默认行为,但我觉得奇怪的是,没有选择让工具遵循依赖项。有人知道这背后的原因吗?

这个答案特定于运行
nuget install packages.config

指定packages.config时,仅安装明确列出的包

但是,如果尝试安装特定的包:
nuget install My.package.Id
,则nuget将安装该包和任何依赖项

编辑有关区别原因的其他信息

nuget安装
实际上应该被称为
nuget下载
。它并不是传统意义上的安装。也就是说,它不向您的项目文件添加引用,不运行install.ps1,不更新packages.config等。您需要使用NuGet GUI或Package Manager控制台来获得真正的安装

由于true install更新了packages.config,因此该文件已包含所有已安装的依赖项。所以指定文件意味着,我想下载这些特定的包。NuGet不需要考虑它,因为它基本上是预先计算的

如果要安装/下载多个软件包并具有NuGet follow依赖项,只需创建一个批处理文件并发出多个命令:

nuget install My.Package.Id
nuget install Another.Package.Id
这将导致NuGet获取包和它可能具有的任何依赖项


希望这能澄清问题。

您指出命令行支持依赖项安装,这可能值得避免混淆,因此感谢您的输入。但我仍在试图理解为什么(从我的角度来看)有意以这种方式限制该工具是可取的。这是非常愚蠢的。我注意到,当您通过VisualStudio进行恢复时,它不仅安装显式列表,而且遵循依赖项。太太酒醉驾车。