根據這樣一個問題:爲什麼nuget命令行工具不遵循依賴關係?
using nuget.exe commandline to install dependency
命令行工具的NuGet不遵循依賴故意。雖然我可以將其理解爲默認行爲,但我覺得沒有選擇讓該工具遵循依賴關係,這似乎很奇怪。有人知道這背後的原因嗎?
根據這樣一個問題:爲什麼nuget命令行工具不遵循依賴關係?
using nuget.exe commandline to install dependency
命令行工具的NuGet不遵循依賴故意。雖然我可以將其理解爲默認行爲,但我覺得沒有選擇讓該工具遵循依賴關係,這似乎很奇怪。有人知道這背後的原因嗎?
該答案特定於運行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來獲取包的任何依賴它可能有。
希望澄清一些事情。
爲避免混淆,您可能需要指出命令行支持依賴項安裝,所以感謝您的輸入。我仍然試圖理解爲什麼(從我的角度來看)有意限制這種工具。 –
我更新了我的答案和其他信息。 – Kiliman
謝謝,這說得很清楚。 –