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

时间:2014-04-24 14:24:01

标签: command-line nuget

根据这个问题:

using nuget.exe commandline to install dependency

命令行NuGet工具不会故意遵循依赖关系。虽然我可以理解这是默认行为,但对我来说似乎很奇怪,没有选择让工具遵循依赖关系。有人知道这背后的原因吗?

1 个答案:

答案 0 :(得分:1)

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

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

但是,如果您尝试安装特定的软件包:nuget install My.Package.Id,那么NuGet将安装软件包和任何依赖项。

编辑有关为何有区别的其他信息。

nuget install应该被称为nuget download。它没有传统意义上的安装。也就是说,它没有添加对项目文件的引用,它没有运行 install.ps1 ,它没有更新 packages.config 等。您需要使用NuGet GUI或Package Manager控制台来获得 true 安装。

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

如果您想安装/下载多个软件包并让NuGet遵循依赖关系,只需创建一个批处理文件并发出多个命令:

nuget install My.Package.Id
nuget install Another.Package.Id

这将导致NuGet获取它可能具有的任何依赖项。

希望这能澄清事情。