1

如果文件由 TFS 控制,我无法重新创建文件。

重现步骤:

  • 创建一个新的控制台应用程序。
  • 添加一个新文件:Class1.cs
  • 将整个解决方案签入到 TFS。
  • 删除 Class1.cs。
  • 再次创建 Class1.cs。

我收到一个错误消息框:

查看。在您的工作区中找不到项目 <...>,或者您没有访问它的权限。

将创建文件,但在“解决方案资源管理器”中它附近没有 TFS 图标。并且该文件仍将在“待更改”中标记为已删除,而不是已更新。

所以如果我想重新创建文件,我必须

  • 删除文件
  • 签入变更集(这会导致 CI​​ 构建中断)
  • 创建文件。

问题是: 这是本地工作空间的设计吗?或者这只是一个错误,稍后会修复?或者这只是我的本地错误,没有人可以在他们的机器上重现它?

PS 我需要重新创建一些文件,例如因为有一些方便的 VS 工具用于创建 WCF RIA 域服务类(包含所有相关元数据),但没有工具可以更新它们。而且我不想更改域服务的名称,否则我将不得不更新客户端。

更新: 我只是试图在另一台 PC 上重现该错误。文件 Class1.cs 已成功重新创建,并被标记为“已更新”。没有消息框窗口,但在输出窗口中有相同的消息:

在您的工作区中找不到项目 <...>,或者您没有访问它的权限。

如果我尝试重新创建 EDMX 模型,我仍然会收到一个带有该错误的消息框,但文件被成功识别为已编辑。我不明白,这两款电脑有什么区别。

4

2 回答 2

1

我尝试重现您的情况,答案是“是”,详细信息如下:

标记为“已更新”的文件。正如您所说,输出窗口中有一条消息,但这条消息很有意义,因为当您第一次删除文件时,现在当您添加同名文件时,它被标记为“删除”团队资源管理器认为您想要编辑文件,因为它仍然在源代码管理中退出,所以当它尝试签出编辑时,因为它是默认配置,请查看图像,它无法在本地工作区找到文件,因为您删除了它,这是消息在输出窗口中。

在此处输入图像描述

第二部分,您在有关 EDMX 文件的更新中提到:因此,当您使用实体设计器修改模型以及使用更新模型向导根据基础数据库的更改更新模型时,EDMX 文件已更新,因此生成了文件。

好的,让我给你一个黄金建议.....我们不会在源代码管理中保留任何生成的文件,但我们会保留生成它们的文件,我们会保留手动编辑的文件,这就是我们不保留的原因'不保留我们代码的 DLL,但我们保留生成该 DLL 的源代码。

于 2013-01-21T04:47:26.280 回答
0

致拉德万先生。

  1. 感谢您的回答。
  2. 对不起我的英语不好。
  3. 我在源代码管理选项中有相同的设置。
  4. 我删除了 Update 1,修复了 VS 并重新安装了 Update 1。现在一切正常。 当我重新创建文件时,现在我在输出窗口而不是对话窗口中有一条消息。该文件被标记为已编辑。
  5. 更新 Edmx 不同于从头开始重新创建它。据我所知,当您更新它时,EF 会保留您对概念部分所做的更改。在某些情况下,重新创建文件然后清理它会更容易。
  6. 我们从未将 *.generated.cs 存储在 TFS 和其他在每次构建时自动生成的代码中。无论如何,谢谢你的建议。
于 2013-01-21T07:06:55.123 回答