【问题标题】:Enabling Nuget Package Restore and Source Control启用 Nuget 包还原和源代码控制
【发布时间】:2015-04-26 09:15:58
【问题描述】:
我正在尝试移动我的解决方案以利用 NuGet 包还原,以便我可以将 packages 文件夹排除在源代码管理之外。但是,我对如何正确实施它有些困惑。
- 我目前在 TFS 中有
packages 文件夹,我应该在提交 NuGet 包还原更改之前将其删除吗?
- 我需要将
.nuget 文件夹提交到源代码管理吗? This 文章告诉我要删除 .NuGet.exe 和 NuGet.targets。
- 使用 NuGet Package Restore 会破坏 TFS 中的构建吗? (比如门控签到)
【问题讨论】:
标签:
visual-studio-2013
tfs
nuget
tfsbuild
nuget-package-restore
【解决方案1】:
- 是的。
- 更好的选择是使用Package Restore Migration 脚本。我已经用过好几次了,效果很好。它将删除 NuGet.exe、NuGet.targets,并且(非常重要地)清理您的项目文件以删除对 NuGet.targets 文件的引用。如果您只是删除 NuGet.targets,它将破坏您的构建。
- 如果您按照链接非常紧密的文章中概述的步骤进行操作,NuGet 包还原不应破坏任何构建。当然,您的构建服务器需要访问 Internet 才能访问 nuget.org。如果您的构建服务器被锁定并且无法访问 Internet,则包还原肯定不起作用。
确保在运行包还原迁移脚本之前关闭 Visual Studio...我发现如果在解决方案打开的情况下运行脚本,它将无法正常工作。
如果您使用的是 Git,请将包文件夹添加到您的 .gitignore。
如果您使用的是 TFVC,请确保您的 NuGet.config 文件将 disableSourceControlIntegration 键设置为 true。
【解决方案2】:
从 Visual Studio 2013 更新 3 开始,Nuget 包还原是默认设置,不需要启用。
如果您删除 /packages 文件夹并签入,它应该会自动填充,无需额外工作。
是:删除 nuget.targets 和 .nuget 文件夹。