11

我正在使用 TFS 源代码控制。

当我向我的资源文件 - Resources.resx - 添加新的资源密钥并点击保存时,TFS 会检出 Resources.resx 但不会检出 Resources.Designer.cs。这会导致 Resources.Designer.cs 更新失败并出现错误:

您尝试的命令无法完成,因为必须修改的文件“Resources.Designer.cs”无法更改。如果文件受源代码控制,您可能需要检查它;如果文件在磁盘上是只读的,您可能需要更改其属性。

在此处输入图像描述

该错误是正确的,因为该文件是只读的并且该文件未签出。我不想每次添加/编辑资源键时都必须手动签出设计器。有人知道解决方案或解决此问题吗?

请注意,我将 TFS 设置为“保存时签出”,而不是“编辑时签出”。这是为了减少未经编辑的结帐数量。

编辑:

这也发生在其他文件类型中。例如,我正在使用RazorGenerator创建已编译的 MVC 视图。如果我尝试编辑 .cshtml 而不先检查 .generated.cs ,也会出现同样的问题。

更新:

这个问题发生在所有(据我所见)具有自动生成代码隐藏的文件上:.resx、.edmx、.aspx、.cshtml(使用 RazorGenerator 编译视图时)等。我已经决定仅仅因为“编辑:什么都不做”设置而痛苦是不值得的。我决定将其重置为“编辑时:自动结帐”。感谢大家的意见。不感谢 TFS 团队的失败。

4

4 回答 4

2

好吧,我不认为这算作答案,所以我在评论中写了它。保存时签出仅在您保存文件时触发,它不会在文件自动生成时触发(自动生成不会触发进行签出的保存,因为此文件是由分配给 resx 的自定义工具编辑的)。

恐怕您不会得到正确的答案(可以解决您的问题的答案),除了它是设计使然之外,但可能值得在连接上打开一个案例并要求更改此行为。

于 2012-08-12T14:29:23.513 回答
1

我必须在工作中使用 TFS。我见过很多奇迹,我们花了很多时间找出问题出在哪里。TFS 是我公司的选择,但它不是我的最爱。

TFS(尤其是当服务器速度很慢并且您经常遇到网络问题时)对我作为开发人员来说是一场灾难。VS 仅查找解决方案中文件的修改,并且您可以看到并非所有文件。当您使用第三方工具(适合集成测试或自定义构建步骤)时,需要在 VS 之外修改文件 - 您可能会遇到与您相同的错误。

但我们找到了解决方案。在我的机器上,我使用git。我们已经安装了git-tfs。你只需要记住三个魔术命令

  • git tfs 获取
  • git 合并遥控器/tfs/默认
  • git tfs ct

就是这样。你永远不会违反公司规则。同时你将摆脱那种奇怪的问题。我们已经忘记了那个噩梦。

编辑:即将到来的 TFS 2012 中的本地工作区将解决几个问题,并且 TFS 2012 将更接近 SVN,但它不会是 DVCS。MS 投资于与外部 DVCS 的集成 - 请,欢迎 - Git-TF

于 2012-08-02T19:31:13.457 回答
1

我认为这是问题所在

请注意,我将 TFS 设置为“保存时签出”,而不是“编辑时签出”。这是为了减少未经编辑的结帐数量。

为避免上述问题,请恢复为默认设置。然后下载 TFS 电动工具。然后使用此命令还原已签出但不包含编辑的更改

tfpt uu /noget

更新:在更改上述设置时,问题不再发生。有关详细信息,请参阅下面的评论中的讨论。

于 2012-08-02T22:20:25.617 回答
1

为什么要减少未经编辑的结帐数量?如果一个文件在没有更改的情况下签入,TFS 会通知并且它不会显示在文件的签入历史记录中。

您可以通过签出单个文件并立即签入来自行测试。TFS 会告诉您那里没有更改并且签出已撤消。

在此处输入图像描述

所以也许考虑将其设置回编辑结帐?如另一个答案中所述,这将解决您的问题...

于 2012-08-10T11:05:42.147 回答