Winforms 通过Team Foundation Server 2010获取表单的特定版本

Winforms 通过Team Foundation Server 2010获取表单的特定版本,winforms,tfs,Winforms,Tfs,我正在公司内部开发WinForms C项目。 我们使用VisualStudio 2010和Team Foundation Server 2010管理代码版本。 我想还原表单的一个版本。 让我们将表单称为MyForm。 MyForm由三个文件组成: MyForm.cs,其中包含隐藏的代码 MyForm.Designer.cs,其中包含VS2010在设计表单时自动生成的代码 MyForm.resx 以下是更改集的简化历史记录: 变更编号:1587。存档的文件: MyForm.Designer

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

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

  • MyForm.cs,其中包含隐藏的代码
  • MyForm.Designer.cs,其中包含VS2010在设计表单时自动生成的代码
  • MyForm.resx
以下是更改集的简化历史记录:

  • 变更编号:1587。存档的文件:
    • MyForm.Designer.cs。已添加文本框控件。让我们调用TextBox控件txtMyBox
    • MyForm.cs。txtMyBox用于代码隐藏
  • 变更集编号:1390。存档的文件:
    • MyForm.cs
  • 变更编号:1299。存档的文件:
    • MyForm.cs
    • MyForm.Designer.cs
  • 变更编号:986。存档的文件:
    • MyForm.cs
    • MyForm.Designer.cs
    • MyForm.resx
以下是我遵循的程序:

  • 右键单击解决方案资源管理器中的MyForm.cs文件
  • 单击上下文菜单中的“获取特定版本”选项
  • 选择变更集编号1390,然后单击“获取”按钮
  • 然后我尝试在设计器中打开MyForm,但显示了一个错误。
    错误消息告诉我提取已取消


    我做错了什么?

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

    你可以做几件事

  • 对包含这两个文件的文件夹执行get-specific version(获取特定版本),这会将所有文件还原为签入变更集1390时可用的版本。(如果您有其他需要最新版本的文件,则可能不希望执行此操作)
  • 在1390的MyForm.cs上执行特定于get的版本,在1299的MyForm.Designer.cs上执行特定于get的版本

  • 这将确保两个文件彼此同步,并解决问题

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

    你可以做几件事

  • 对包含这两个文件的文件夹执行get-specific version(获取特定版本),这会将所有文件还原为签入变更集1390时可用的版本。(如果您有其他需要最新版本的文件,则可能不希望执行此操作)
  • 在1390的MyForm.cs上执行特定于get的版本,在1299的MyForm.Designer.cs上执行特定于get的版本

  • 这将确保两个文件彼此同步,并解决问题

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


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

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


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

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