1

关于 Team Foundation Server 的 (TFS) 源代码控制......您如何将项目的状态从 更改InvalidValid

背景

我们正在重组 TFS 中的几个解决方案和项目。在这种情况下:

  1. 首先执行分支操作以将现有解决方案+项目移动到 TFS 存储库中的新位置。
  2. 项目层次结构一团糟,所以我使用 TFS移动操作将项目移动到适当的位置。
    • 这个步骤在许多项目上执行。对于其中的 99%,绑定是可以的。
  3. 然后将更改提交到 TFS。

不同的方法

在 Visual Studio 中...

  • 打开有问题的解决方案
  • 在解决方案资源管理器中选择解决方案
  • 选择文件->源代码管理->更改源代码管理
  • 取消绑定任何已绑定但无法正常工作的项目。
  • 绑定所有现在未绑定的项目。

  1. 从磁盘中删除所有源代码。
  2. 启动Visual Studio
  3. 打开源代码管理资源管理器窗口
  4. 工作区下拉菜单 =>工作区=> 选择MyWorkspace=>编辑... =>高级
    • 一切看起来都不错
  5. 确保没有与解决方案项目相关的TFS挂起更改。
  6. 源代码管理 => 获取最新信息
  7. 在Notepad++中打开解决方案(例如MySolution.sln
  8. 删除了整个部分:
    • GlobalSection(TeamFoundationVersionControl) = preSolution
  9. 保存解决方案文件。
  10. 在Notepad++中打开项目文件(例如 MyProject.vcxproj)
  11. 删除了以下 XML 元素:
    • SccProjectName
    • SccAuxPath
    • SccLocalPath
    • SccProvider
  12. 保存项目文件。
  13. Visual Studio => 文件 => 打开 => 解决方案
  14. 单击解决方案资源管理器MySolution中的
  15. 文件 => 源代码控制 => 高级 => 更改源代码控制
    • 状态栏中,MySolution并列MyProjectNot Controlled
  16. 单击MySolution绑定
  17. 单击确定。到目前为止,一切都很好。
  18. 文件 => 源代码控制 => 高级 => 更改源代码控制
    • 状态栏中,MyProject列为Not Controlled
  19. 单击MyProject绑定
    • 状态栏中,MyProject现在标记为Invalid
  20. 如果我现在单击确定,则会显示以下错误:
    • “某些项目已绑定到可能不正确的服务器位置。位置可能不正确,因为它不包含项目的大部分文件,或者因为这些文件相对于指定的服务器文件夹不在正确的位置。您应该可能修复解决方案中的所有绑定。但是,即使有些项目可能不正确,您也可以继续并将这些项目绑定到指定位置。
  21. 点击:修复服务器绑定
    • 对话窗口消失。
  22. 点击:好的
    • 之前的错误再次出现。
  23. 点击:继续这些绑定
    • 对话窗口消失了,但我仍然没有进一步解决这个问题:(

环境

  • Visual Studio 高级版 2013 (v12.0.21005.1 REL)
  • Windows 8.1 企业版(64 位)
  • 此解决方案包含其他几个项目(C++ 和 C#),并且绑定很好。
  • 此解决方案目前没有构建定义。

附加阅读

4

3 回答 3

0

通常我会避免签入不是 [1] 可编译的代码,并且 [2] 准备好用于生产(或至少准备好进行 QA)。

在这种情况下,我决定无视自己的规则,现在我已经付出了代价:(

解决方案

尽管已使用 TFSMove命令正确更改了项目位置,但一些 C++ 项目具有指向旧路径的引用。结果,这些项目的绑定状态为Invalid

  • 项目过滤器包含一个不再位于旧位置的文件。
    • MyProject=>ThirdPartyLib过滤器 =>HeaderOfSomeLibraryFile.h
  • MyProject.vcxproj有一个无效的项目参考。
    • MyProject=> Properties=> Common Properties=>References

解决这些问题后,MyProject.vcxproj绑定状态自​​动切换为Valid

于 2015-06-10T13:31:33.140 回答
0

我今天遇到了同样的问题。在尝试了不同的方法后,我发现当前解决方案中的两个文件被忽略了(它们没有添加到 TFS 存储库中)。就我而言,我有 2 个自定义“.config”文件。

手动添加这些文件后,状态更改为“有效”并且绑定现在正在工作。

于 2017-06-15T11:02:29.017 回答
0

我找到了两个解决方案:

  1. 解绑,卸载项目,然后重新加载。来自Binding Invalid

  2. 删除不在源代码管理中的文件。来自解决“某些项目已绑定到可能不正确的服务器位置”。在 Visual Studio 2010 中使用 Team Foundation System 2010 时:当某些百分比的解决方案项无法在本地找到且不在版本控制系统中时,Visual Studio 会将绑定到版本控制系统的解决方案标记为“无效”。

就我而言,这是因为 Angular 构建生成了许多文件,我使用 .tfignore 来阻止它们被签入。Visual Studio 2019 发现“它不包含大多数项目的文件”并将该项目标记为“无效”。删除这些文件后,它会自动变为“有效”。所以“无效”状态只是一个误导/无用的警告。您可以忽略该警告,因为没有什么是真正“无效的”。

于 2019-12-25T03:02:48.693 回答