根据这个问题:
using nuget.exe commandline to install dependency
命令行NuGet工具不会故意遵循依赖关系。虽然我可以理解这是默认行为,但对我来说似乎很奇怪,没有选择让工具遵循依赖关系。有人知道这背后的原因吗?
答案 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获取它可能具有的任何依赖项。
希望这能澄清事情。