Visual studio 2013 如何:更改项目';s的状态从“无效”变为“有效”? 关于Team Foundation Server(TFS)源代码管理…如何将项目的状态从无效更改为有效 背景

Visual studio 2013 如何:更改项目';s的状态从“无效”变为“有效”? 关于Team Foundation Server(TFS)源代码管理…如何将项目的状态从无效更改为有效 背景,visual-studio-2013,version-control,tfs,source-control-bindings,Visual Studio 2013,Version Control,Tfs,Source Control Bindings,我们正在重新组织TFS中的几个解决方案和项目。在这种情况下: 首先执行分支操作,将现有解决方案+项目移动到TFS存储库中的新位置 项目层次结构混乱不堪,因此我使用TFS Move操作将项目移动到适当的位置。 这一步骤是在许多项目上执行的。对于99%的用户来说,绑定是可以的 然后将更改提交给TFS 不同的方法 一个 在Visual Studio中 打开问题的解决方案 在解决方案资源管理器中选择解决方案 选择文件->源代码管理->更改源代码管理 解除绑定任何已绑定但无法正常工作的项目 绑定所有

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

  • 首先执行分支操作,将现有解决方案+项目移动到TFS存储库中的新位置
  • 项目层次结构混乱不堪,因此我使用TFS Move操作将项目移动到适当的位置。
    • 这一步骤是在许多项目上执行的。对于99%的用户来说,绑定是可以的
  • 然后将更改提交给TFS
  • 不同的方法 一个 在Visual Studio中

    • 打开问题的解决方案
    • 在解决方案资源管理器中选择解决方案
    • 选择文件->源代码管理->更改源代码管理
    • 解除绑定任何已绑定但无法正常工作的项目
    • 绑定所有现在未绑定的项目
    两个
  • 从磁盘上删除所有源代码
  • 启动VisualStudio
  • 打开“源代码管理资源管理器”窗口
  • 工作区下拉列表=>工作区=>选择
    MyWorkspace
    =>编辑…=>先进的
    • 一切看起来都很好
  • 确保没有与解决方案项目相关的TFS未决更改
  • 源代码管理=>获取最新版本
  • 在记事本中打开解决方案(例如
    MySolution.sln
    )++
  • 删除了整个部分:
    • GlobalSection(TeamFoundationVersionControl)=预解
  • 已保存解决方案文件
  • 在记事本中打开项目文件(例如MyProject.vcxproj)++
  • 已删除以下XML元素:
    • SccProjectName
    • SccAuxPath
    • SccLocalPath
    • SccProvider
  • 已保存项目文件
  • Visual Studio=>File=>Open=>Solution
  • 单击解决方案资源管理器中的
    MySolution
  • 文件=>源代码管理=>高级=>更改源代码管理
    • 在状态列中,
      MySolution
      MyProject
      列为
      未控制
  • 单击
    MySolution
    并绑定
  • 点击Ok。到目前为止还不错
  • 文件=>源代码管理=>高级=>更改源代码管理
    • 在状态列中,
      MyProject
      列为
      未控制
  • 单击
    MyProject
    并绑定
    • 在状态列中,
      MyProject
      现在标记为
      Invalid
  • 如果现在单击“确定”,将显示以下错误:
    • “某些项目已绑定到可能不正确的服务器位置。位置可能不正确,因为它不包含大多数项目的文件,或者这些文件不在相对于指定服务器文件夹的正确位置。您可能应该修复解决方案中的所有绑定。但是,即使某些项目可能不正确,您也可以继续并将这些项目绑定到指定位置。”
  • 单击:修复服务器绑定
    • 对话窗口消失
  • 单击:确定
    • 上一个错误重新出现
  • 单击:继续这些绑定
    • 对话窗口消失,但我仍无法进一步解决此问题:(
  • 环境
    • Visual Studio Premium 2013(v12.0.21005.1版本)
    • Windows 8.1企业版(64位)
    • 此解决方案包含其他几个项目(C++&C#),绑定很好
    • 此解决方案目前没有生成定义
    补充阅读

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

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

    解决方案

    使用TFS <代码>移动< /COD>命令,项目位置已经适当更改,但一些C++项目中有指向旧路径的引用,因此,这些项目具有“代码>无效:

    的绑定状态。
    • 项目筛选器包含一个不再位于旧位置的文件。
      • MyProject
        =>
        ThirdPartyLib
        filter=>
        HeaderOfSomeLibraryFile.h
    • MyProject.vcxproj
      具有无效的项目引用。
      • MyProject
        =>
        属性
        =>
        公共属性
        =>
        参考

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

    通常我避免签入不可编译且[2]已准备好生产(或至少已准备好进行QA)的代码

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

    解决方案

    使用TFS <代码>移动< /COD>命令,项目位置已经适当更改,但一些C++项目中有指向旧路径的引用,因此,这些项目具有“代码>无效:

    的绑定状态。
    • 项目筛选器包含一个不再位于旧位置的文件。
      • MyProject
        =>
        ThirdPartyLib
        filter=>
        HeaderOfSomeLibraryFile.h
    • MyProject.vcxproj
      具有无效的项目引用。
      • MyProject
        =>
        属性
        =>
        公共属性
        =>
        参考
    纠正这些问题后,
    MyProject.vcxproj
    绑定状态自动切换到
    Valid

    <