【问题标题】:HowTo: change a project's status from `Invalid` to `Valid`?HowTo:将项目的状态从“无效”更改为“有效”?
【发布时间】:2015-08-24 14:22:38
【问题描述】:

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

背景

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

  1. 首先执行了分支操作,以将现有的解决方案+项目移动到 TFS 存储库中的新位置。
  2. 项目层次结构一团糟,因此我使用 TFS Move 操作将项目移动到适当的位置。
    • 此步骤已在多个项目中执行。对于其中的 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. Solution Explorer中点击了MySolution
  15. 文件 => 源代码控制 => 高级 => 更改源代码控制
    • status 列中,MySolutionMyProject 被列为 Not Controlled
  16. 点击MySolution绑定
  17. 单击确定。到目前为止一切顺利。
  18. 文件 => 源代码控制 => 高级 => 更改源代码控制
    • status 列中,MyProject 列为Not Controlled
  19. 点击MyProject绑定
    • status 列中,MyProject 现在标记为 Invalid
  20. 如果我现在单击确定,则会显示以下错误:
    • “某些项目已绑定到可能不正确的服务器位置。位置可能不正确,因为它不包含项目的大部分文件,或者因为这些文件相对于指定服务器不在正确的位置文件夹。您可能应该修复解决方案中的所有绑定。但是,即使有些项目可能不正确,您也可以继续并将这些项目绑定到指定位置。"
  21. 单击:修复服务器绑定
    • 对话窗口消失。
  22. 点击:确定
    • 之前的错误再次出现。
  23. 单击:继续这些绑定
    • 对话窗口消失了,但我仍然没有进一步解决这个问题:(

环境

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

补充阅读

【问题讨论】:

    标签: visual-studio-2013 version-control tfs source-control-bindings


    【解决方案1】:

    通常我会避免签入那些 [1] 不可编译且 [2] 无法用于生产(或至少可以用于 QA)的代码。

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

    解决方案

    虽然项目位置已使用 TFS Move 命令正确更改,但一些 C++ 项目的引用指向旧路径。因此,这些项目的 Binding 状态为Invalid

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

    纠正这些问题后,MyProject.vcxproj绑定状态自​​动切换到Valid

    【讨论】:

      【解决方案2】:

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

      手动添加这些文件后,状态变为“有效”,现在正在绑定。

      【讨论】:

        【解决方案3】:

        我找到了两个解决方案:

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

        2. 删除不在源代码管理中的文件。来自Solving the "Some projects have been bound to server locations that may be incorrect." in Visual Studio 2010 when using Team Foundation System 2010:当部分解决方案项在本地找不到,并且不在版本控制系统中时,Visual Studio 会将绑定到版本控制系统的解决方案标记为“无效”。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-12
          • 1970-01-01
          • 2018-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多