VS2019添加文件/更新NuGet后需另存项目,CSPROJ签出时被删除
问题描述
更换新机器后,执行NuGet包更新或添加新文件操作时,Visual Studio通过DevOps TFS签出文件过程中,CSPROJ项目文件会被物理删除,触发项目保存提示,但无法将项目保存到原路径或本地任意位置(已确认拥有工作路径完整权限)。尝试修复Visual Studio、查阅常规论坛方案均未解决问题。
解决方案
重置TFS工作区映射
- 打开Visual Studio的Team Explorer,进入「管理连接」-「工作区」
- 删除当前工作区映射,重新创建新工作区,将项目映射到不含特殊字符(中文、空格、特殊符号)的本地路径
- 重新获取项目的服务器最新版本
清除Visual Studio与TFS缓存
- 关闭所有Visual Studio实例
- 删除VS组件缓存:
%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache - 删除TFS客户端缓存:
%LOCALAPPDATA%\Microsoft\Team Foundation\<TFS版本号>\Cache - 重启Visual Studio并重新连接TFS项目
手动预签出CSPROJ文件
在执行NuGet更新或添加文件操作前,先在TFS源代码管理中手动签出目标CSPROJ文件,避免VS自动签出流程触发文件删除异常同步本地与服务器版本一致性
- 在Team Explorer中右键项目,选择「比较」查看CSPROJ文件的本地与服务器版本差异
- 若存在差异,先执行「获取最新版本」同步文件,再进行后续操作
使用TFS命令行重建工作区
- 打开对应版本的Developer Command Prompt for Visual Studio
- 删除旧工作区:
tf workspace /delete /collection:<你的TFS集合URL> <原有工作区名称> - 创建新工作区:
tf workspace /new /collection:<你的TFS集合URL> <新工作区名称> - 映射项目路径:
tf workfold /map $/服务器项目路径 本地目标路径
内容的提问来源于stack exchange,提问作者M Moore
相关产品推荐
相关产品推荐

