【问题标题】:tfignore not working in VS 2013tfignore 在 VS 2013 中不起作用
【发布时间】:2016-08-29 12:34:36
【问题描述】:

我将 Visual Studio 2013 与 TFS 2013 一起使用。我一直在尝试让文件夹中的所有文件不使用 .tfignore 签入,并且经过数小时的搜索和尝试不同的解决方案而没有运气。我按照http://msdn.microsoft.com/en-us/library/vstudio/ms245454.aspx 的说明进行操作,但无法正常工作。任何帮助表示赞赏。

我的项目结构看起来是这样的:

  • 项目
    • 控件
    • 测试忽略
      • Class1.cs
      • Class2.cs
    • .tfignore

我的 .tfignore 有 1 行代码: \测试忽略

我的工作区设置为本地。

当我对 Class1.cs 进行更改时,当我签入时,Class1.cs 在我认为它不应该出现的待签入列表中。

【问题讨论】:

  • Class1.cs 文件之前是否已提交?您只能忽略从未签入的文件。
  • 是的,Class1.cs 已经在 TFS 中。我将尝试使用不在 TFS 中的文件,看看效果如何
  • 我尝试在 TestIgnore 文件夹中添加一个新文件,但它仍在尝试签入该文件。这可能是由于 .csproj 文件为它尝试检查的新文件添加了一条记录它在吗?
  • 我在 msdn 上问了同样的问题,得到的回复说这似乎是 VS 2013 中不支持 tfignore 的错误。我也在 msdn 上提交了一个错误,并且很好地关闭了这个问题。希望它会尽快得到修复。
  • 阅读此 cmets 时,很明显 .tfignore 完全无法使用。 :-(

标签: tfs visual-studio-2013


【解决方案1】:

我对此感到非常沮丧,尽管 .tfignore 文件与解决方案位于同一文件夹中,并删除了 packages 文件夹(我试图让 TFS 忽略),但似乎没有任何效果。构建后,nuget将恢复包并且包将显示在挂起的更改窗口中。

但是一时兴起,想起了我在某处看到的一些模糊评论,我在解决方案资源管理器中右键单击了解决方案,然后选择了“启用 Nuget 包还原”——这会在解决方案中添加一个 .nuget 文件夹,然后瞧,在签入 TFS 的解决方案时,packages 文件夹突然被忽略了。

我退出 VS2013,删除包文件夹,再次打开解决方案,选择“重建解决方案”并恢复包,但未决更改窗口中没有显示任何内容。终于成功了!

经过进一步调查,它似乎是 nuget.config 文件和设置“disableSourceControlIntegration=true”,这是在http://nuget.codeplex.com/workitem/4072 中看到的必要设置

【讨论】:

  • 谢谢,这正是我在 VS2013 中使用 TFS 和 NuGet 包还原的问题。 .nu​​get/NuGet.Config 文件是关键部分。请参阅docs.nuget.org/docs/workflows/…,其中指出“默认情况下,NuGet.Config 文件指示 NuGet 绕过将程序包二进制文件添加到源代码管理。只要您保留此文件,自动程序包还原就会遵守这一点。请注意,NuGet.Config 只有一个使用 Visual Studio 与 Team Foundation Server (TFS) 集成时的效果。"
  • 因此,使用新的“自动包还原”魔法(或多或少是零配置)看起来您必须手动添加此 .nuget/NuGet.Config 文件以防止 NuGet 添加所有将包恢复到您的待定更改。仅在 .tfignore 中包含它是不够的,因为您还必须阻止 NuGet 通过 TFS API 以编程方式添加它们。
  • 谢谢大家!我将 .tfignore 设置为忽略包文件夹,并且我的 nuget.config 将 disableSourceControlIntegration 设置为 true,但 Visual Studio 仍想尝试添加包。关于仍然可能出现问题的任何想法?
  • @kristian,你能把你的评论作为答案吗?你说的解决了我的问题,我想给你功劳。
  • @RichardII,我在原始答案中添加了我的评论
【解决方案2】:

我在 msdn 上问了同样的问题,得到的回复说这似乎是 VS 2013 中的一个错误,因为不支持 tfignore。我也在 msdn 上提交了一个错误,并且很好地关闭了这个问题。希望它会尽快得到修复。

【讨论】:

    【解决方案3】:

    tfIgnore does not work for me in Visual Studio 2013

    爱德华王尔德的回答为我解决了这个问题。我不得不删除源代码管理本身已经签入的包。然后 tfs 会忽略这些更改。

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题,TFS 阻止我检查位于项目根目录下 2 个文件夹的 .tfignore 文件。

      只有将.tfignore 文件放在项目的根文件夹中时,它才能工作。 (.tfignore 文件并排放置在“Main”文件夹中)。

      这样,TFS 让我签入我的.tfignore 文件。

      【讨论】:

        猜你喜欢
        • 2014-06-18
        • 2015-02-12
        • 2017-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-30
        • 2018-08-25
        相关资源
        最近更新 更多