2

我正試圖移動我的解決方案以利用NuGet包還原,以便我可以保持packages文件夾脫離源代碼管理。然而,我對如何正確實施它有一些困惑。啓用Nuget包還原和源代碼控制

  1. 我目前在TFS中有packages文件夾,我應該在提交NuGet軟件包恢復更改之前刪除它嗎?
  2. 我需要將.nuget文件夾提交給源代碼管理嗎? This文章告訴我要刪除.NuGet.exeNuGet.targets
  3. 將在TFS中使用NuGet包還原中斷嗎? (例如門控簽入)

回答

1

從Visual Studio 2013更新3 Nuget包恢復是默認值,不需要啓用。

如果刪除/ packages文件夾並簽入,它應該自動填充而不需要額外的工作。

是:刪除nuget.targets和.nuget文件夾。

2
  1. 是的。
  2. 更好的選擇是使用Package Restore Migration腳本。我已經多次使用它,並且它運行得非常漂亮。它將刪除NuGet.exe,NuGet.targets,並且(非常重要的)清理您的項目文件以刪除對NuGet.targets文件的引用。如果你只是刪除NuGet.targets,它會破壞你的構建。
  3. 如果您按照您非常密切關聯的文章中概述的步驟操作,NuGet包恢復不應該破壞任何構建。當然,您的構建服務器需要訪問互聯網,以便能夠訪問nuget.org。如果您的構建服務器被鎖定並且無法訪問Internet,則程序包恢復將無法正常工作。

請確保在運行程序包恢復遷移腳本之前關閉Visual Studio ...我發現如果在解決方案打開時運行該腳本,它將無法正常工作。

如果您使用的是Git,請將packages文件夾添加到.gitignore中。 如果您使用的是TFVC,請確保您的NuGet.config文件的disableSourceControlIntegration鍵設置爲true

+0

Nuget.org上的解釋:http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore – 2015-03-08 21:57:33