VS2017中.tfignore失效,NuGet包仍显示待签入求解决
排查VS2017 TFVC签入时仍显示NuGet包的问题
我来帮你梳理下可能的问题点,你遇到的情况在TFVC搭配NuGet的场景里挺常见的,咱们一步步排查:
.tfignore管不住已被追踪的文件
如果之前你(或团队成员)已经把packages文件夹、.nupkg文件添加到TFVC源代码管理中,后续加的.tfignore是约束不了这些已追踪文件的。你得先把它们从TFVC里解除关联:- 要是刚添加还没签入,就在VS的「团队资源管理器-挂起的更改」里找到这些文件,右键选「撤销」;
- 要是已经签入过,就得执行「删除」操作,但一定要选「保留本地文件」——这样服务器会取消对这些文件的追踪,本地还能正常用包。
.tfignore本身需要签入才能生效
你把.tfignore放在解决方案层级是对的,但得确保这个文件已经被添加到源代码管理并签入服务器。TFVC不会自动识别本地的.tfignore,必须把它纳入版本控制,工作区才能加载规则。另外检查下规则写法:- 忽略packages文件夹要写
packages/(或**/packages/确保递归生效) - 忽略nupkg文件写
*.nupkg就没问题
你还可以用TF命令行工具执行tf status /recursive,看看输出里的文件是否符合你的忽略规则。
- 忽略packages文件夹要写
nuget.config配置有局限性
disableSourceControlIntegration=true这个配置的作用是:NuGet还原包时,不会自动把packages文件夹加到源代码管理。但如果这些文件已经被追踪了,这个配置就起不到作用了。另外要确保nuget.config放在解决方案根目录(和.sln文件同层级),放其他位置可能不被VS的NuGet工具识别。VS TFVC缓存导致的显示异常
有时候VS的工作区缓存会出问题,你可以试试:- 在「团队资源管理器」里找到你的工作区,右键选「刷新」;
- 或者重新映射工作区,再查看挂起的更改;
- 关闭VS后,清理本地TFVC缓存(路径一般是
%LOCALAPPDATA%\Microsoft\Team Foundation\7.0\Cache),再重启VS。
总结下修复步骤:
- 先移除所有已被TFVC追踪的NuGet包文件(保留本地文件);
- 确保.tfignore规则正确,添加到源代码管理并签入;
- 确认nuget.config位置和配置正确,必要时签入;
- 刷新工作区或清理缓存,重新查看挂起的更改。
内容的提问来源于stack exchange,提问作者developer9969
相关产品推荐
相关产品推荐

