2

我正在尝试移动我的解决方案以利用 NuGet 包还原,以便我可以使packages文件夹不受源代码控制。但是,我对如何正确实施它有些困惑。

  1. 我目前packages在 TFS 中有该文件夹,我应该在提交 NuGet 包还原更改之前将其删除吗?
  2. 我需要将该.nuget文件夹提交到源代码管理吗?这篇文章告诉我要删除.NuGet.exeNuGet.targets
  3. 使用 NuGet 包还原会破坏 TFS 中的构建吗?(比如门控签到)
4

2 回答 2

2
  1. 是的。
  2. 更好的选择是使用Package Restore Migration脚本。我已经用了好几次了,效果很好。它将删除 NuGet.exe、NuGet.targets,并且(非常重要地)清理您的项目文件以删除对 NuGet.targets 文件的引用。如果您只是删除 NuGet.targets,它将破坏您的构建。
  3. 如果您按照非常紧密链接的文章中概述的步骤进行操作,NuGet 包还原不应破坏任何构建。当然,您的构建服务器需要访问 Internet 才能访问 nuget.org。如果您的构建服务器被锁定并且无法访问 Internet,则包还原肯定无法正常工作。

确保在运行包还原迁移脚本之前关闭 Visual Studio...我发现如果在解决方案打开的情况下运行脚本,它将无法正常工作。

如果您使用的是 Git,请将包文件夹添加到您的 .gitignore。如果您使用的是 TFVC,请确保您的 NuGet.config 文件的disableSourceControlIntegration密钥设置为true.

于 2015-02-25T01:38:30.963 回答
1

从 Visual Studio 2013 更新 3 开始,Nuget 包还原是默认设置,不需要启用。

如果您删除 /packages 文件夹并签入,它应该会自动填充,无需额外工作。

是:删除 nuget.targets 和 .nuget 文件夹。

于 2015-02-24T19:32:43.040 回答