【问题标题】:Getting a specific version of a Form via Team Foundation Server 2010通过 Team Foundation Server 2010 获取特定版本的表单
【发布时间】:2012-09-19 09:19:54
【问题描述】:

我正在公司内部开发一个 WinForms C# 项目。
我们使用 Visual Studio 2010 和 Team Foundation Server 2010 来管理代码版本。

我想恢复表单的一个版本。
我们将表单称为 MyForm。
MyForm 由三个文件组成:

  • MyForm.cs 包含后面的代码。
  • MyForm.Designer.cs,其中包含设计表单时由 VS2010 自动生成的代码。
  • MyForm.resx.

这是变更集的简化历史记录:

  • 更改集编号:1587。归档的文件:
    • MyForm.Designer.cs。添加了一个 TextBox 控件。我们将 TextBox 控件称为 txtMyBox。
    • MyForm.cs。 txtMyBox 在后面的代码中使用。
  • 更改集编号:1390。存档文件:
    • MyForm.cs
  • 更改集编号:1299。归档文件:
    • MyForm.cs
    • MyForm.Designer.cs
  • ...
  • 更改集编号:986。存档文件:
    • MyForm.cs
    • MyForm.Designer.cs
    • MyForm.resx

这是我遵循的程序:

  1. 在解决方案资源管理器中右键单击 MyForm.cs 文件。
  2. 单击上下文菜单中的“获取特定版本”选项。
  3. 选择更改集编号 1390,然后单击“获取”按钮。

然后我尝试在设计器中打开 MyForm 但显示错误。
错误消息告诉我提取已被取消。

我做错了什么?

【问题讨论】:

    标签: winforms tfs


    【解决方案1】:

    您有旧版本的 MyForm.cs(无文本框)但最新版本的 MyForm.Designer.cs(有文本框)。

    你可以做几件事

    1. 在包含这两个文件的文件夹上获取特定版本,这会将所有文件恢复为签入变更集 1390 时可用的版本。(如果您有其他文件需要最新版本)
    2. 在 1390 在 MyForm.cs 上获取特定版本,在 1299 在 MyForm.Designer.cs 上获取特定版本

    这应确保两个文件彼此同步并解决问题。

    【讨论】:

    • 我尝试了选项 2 但没有成功。我仍然收到一条错误消息。我不能执行选项 1,因为 MyForm 的 3 个文件包含在与其他表单文件一起的文件夹中 - 每个表单由 3 个文件组成,即 MyForm。
    • 它真的得到了什么吗,TFS 可以这么有趣。在变更集和本地文件系统之间进行比较。您可能需要点击获取对话框底部的 2 个复选框“覆盖未签出的可写文件”和“即使本地版本与指定版本匹配也覆盖所有文件”
    • 我在 1390 的 MyForm.cs 和 1299 的 MyForm.Designer.cs 上完成了一个特定版本。然后我将 MyForm.cs 和 MyForm.Designer.cs 的本地版本与他们的进行了比较各自的服务器最新版本。本地版本和服务器版本不一样,没关系。但是MyForm.cs 和MyForm.Designer.cs 在获取特定版本后不会被提取。当我尝试在设计器模式下打开 MyForm 时,会自动提取服务器最新版本的 MyForm.cs 和 MyForm.Designer.cs。然后会显示一条错误消息。
    【解决方案2】:

    这有点老了,但我最近遇到了同样的问题,这是我的解决方法。 VS2012和TFS2012

    删除本地工作区版本,然后获取最新版本。就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2011-08-11
      • 2011-02-10
      相关资源
      最近更新 更多