2012-09-19 28 views
1

我正在开发我公司内的WinForms C#projet。
我们使用Visual Studio 2010和Team Foundation Server 2010来管理代码版本。通过Team Foundation Server获取表单的特定版本

我想恢复表单的一个版本。
让我们调用Form 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,但显示错误。
错误消息告诉我,提取已被取消。

我做错了什么?

回答

1

你有旧版本的MyForm。cs(没有文本框),但最新版本的MyForm.Designer.cs(带有TextBox)。

你可以做几件事情

  1. 做一个获取包含这两个文件的文件夹上的特定版本,这将恢复到可用的版本的所有文件,当变更1390中进行了调查。(你可能不希望要做到这一点,如果你有,你需要有最新版本的其他文件)
  2. 做在1390得到MyForm.cs特定的版本,并在1299
一个得到MyForm.Designer.cs特定版本

这应该确保两个文件都是同步的并相互解决问题。

+0

我试过了选项2但没有成功。我仍然收到错误消息。我不能执行选项1,因为MyForm的3个文件包含在其他表单文件的文件夹中 - 每个表单由3个文件组成,如MyForm。 – user1139666

+0

它实际上获得了什么,TFS可以这样搞笑。在变更集和本地文件系统之间做一个差异。您可能想要点击获取对话框底部的2个复选框“覆盖未检出的可写文件”和“覆盖所有文件,即使本地版本与指定版本匹配” –

+0

我已经完成了获取特定版本MyForm.cs在1390和MyForm.Designer.cs在1299.然后我比较了我的本地版本的MyForm.cs和MyForm.Designer.cs与它们各自的服务器的最新版本。本地版本和服务器版本不一样,没关系。但MyForm.cs和MyForm.Designer.cs不会在获取特定版本后提取。当我尝试在设计器模式下打开MyForm时,会自动提取MyForm.cs和MyForm.Designer.cs的服务器最新版本。然后显示错误消息。 – user1139666

0

这是一种古老的,但我最近有同样的问题,这是我的修复。 VS2012和TFS2012

删除本地工作区版本,然后获取最新版本。而已。