2013-02-06 26 views
2

據我所知,nuget的軟件包可以在建立項目之前恢復下載並「安裝」各種必需的軟件包。但我無法弄清楚實際服務的目的。「包恢復」服務的目的是什麼?

據我所知道的,包在一個包的「安裝」恢復,是不一樣的軟件包的實際安裝 - 例如,如果你做到以下幾點:

  1. 安裝jQuery的包(注意,這增加了jQuery的腳本文件到您的項目的「腳本」目錄)
  2. 刪除添加的jQuery腳本文件
  3. 刪除「包」目錄(步驟2 & 3模擬構建機器上的狀態,或其他開發人員的機器)
  4. 在這一點上做的一個版本(觸發包還原)

構建國家

2> Successfully installed 'jQuery 1.9.1'. 

然而,jQuery的包的腳本文件添加到「腳本」文件夾中,文件是不是添加到該項目。

這意味着您必須將這些文件複製到源代碼控制中。

這也意味着當你更新這個包時,你必須管理添加/刪除新舊文件(因爲使用了不同的,版本化的文件名)。否則你的'腳本'文件夾會填滿版本化腳本文件的無盡歷史。

所以,如果你有反正檢查每一件事,你手動管理添加和更新時,刪除文件,究竟是什麼在構建恢復包的好處?這有什麼用途?

更重要的是,爲什麼不是這顯然是有目的的:自動將包的文件添加到項目中?

回答

0

Using NuGet Without Committing Packages to Source Control討論了包恢復背後的原因。

包恢復意味着您不必檢查文件夾到源代碼管理。一旦啓用了項目,它將下載這些軟件包,並在構建時將它們放回到軟件包文件夾中,如果它們丟失的話。正如你所發現的那樣,它不會將任何包文件添加到你的項目中。在jQuery的情況下,NuGet包中的所有文件都會添加到您的項目中。其他NuGet軟件包包含一個或多個二進制文件。