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