【问题标题】:tfIgnore does not work for me in Visual Studio 2013tfIgnore 在 Visual Studio 2013 中对我不起作用
【发布时间】:2014-06-18 10:41:24
【问题描述】:

我正在努力让tfIgnoreVisual Studio 2013 工作。

我按照这里的说明操作:bottom of this article 并像这样排除了我的包文件:

\folderA\folderB\packages 

路径看起来不错,是 Visual Studio 为我生成的。我已将文件签入到 Visual Studio 生成它的位置并尝试重新构建,但这些包仍然出现在我的 included changes 文件夹中等待更改。

我已经尝试了文件位置和文件规范命令的各种其他组合,但它似乎从来没有做任何事情。

我是否遗漏了一些明显的东西?

【问题讨论】:

  • 我已经放弃了 .tfignore 和包(我认为有些东西坏了),我只是隐藏文件夹,
  • 您的文件夹是否已存储在源代码管理中?如果您不小心签入了一个文件夹,然后创建了一个忽略文件,这些文件仍将显示在待更改中,直到您从源代码管理中删除这些文件。
  • 另见这个问题,我对 MrHinsh stackoverflow.com/questions/26604506/… 的答案做了一些 cmets - 基本上,TFVS 和 NuGet 不能很好地结合在一起。

标签: visual-studio tfs nuget


【解决方案1】:

NuGet 中的错误可能会导致该问题。这是workaround

  1. 在您的解决方案文件夹中创建一个.nuget 文件夹(如果它不存在)。

  2. .nuget 文件夹中,使用以下内容创建文件nuget.config

<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>

【讨论】:

    【解决方案2】:

    我注意到,如果您在 packages 文件夹中检查了一个文件,例如 repositories.config,则 .tfignore 模式不起作用。

    我的解决方案是从源代码管理中完全删除包文件夹,然后成功忽略包内容

    【讨论】:

    • 完全正确 - tfignore 只处理新添加的文件(和文件夹)。如果您指定要忽略的文件夹但该文件夹存在,则不会忽略它(及其子级)。
    • 我一直在删除 TFS(本地工作区)中的 packages 文件夹,并提交了删除操作,我总是忽略 \*\packages,但该死的 packages\repositories.config 不断被添加回 TFS!现在又在源代码管理资源管理器中有一点+ 登录。就像我怀孕了!
    【解决方案3】:

    在未决更改中,右键单击根包文件夹 -> 单击撤消。您应该会看到您的更改移动到“检测到的更改”对话框中,位于排除的更改下(您可以将文件提升到源代码管理的窗口)。

    现在,打开 .tfignore 并简单地添加 packages。您现在应该看到,当您打开检测到的更改时,您的包不会显示。

    【讨论】:

    • 这似乎有点用,但是当我通过 NuGet 包还原(在构建解决方案时触发)恢复我的包文件时,packages 中的文件无论如何都会被添加到“包含的更改”中.
    • 谢谢,需要撤消包文件夹
    【解决方案4】:

    我有同样的问题。我去发现NuGet客户端有bug:

    忽略文件

    注意:NuGet 客户端中当前存在一个已知错误,该错误会导致客户端仍将包文件夹添加到版本控制中。一种解决方法是禁用源代码管理集成。为此,您需要 .nuget 文件夹中与您的解决方案平行的 nuget.config 文件。如果此文件夹尚不存在,则需要创建它。在nuget.config中添加如下内容:

    http://docs.nuget.org/consume/package-restore/team-build

    我能够按照上面“忽略文件”部分中链接的解决方法使其正常工作。这是以下工作的 sn-p:

    尊重 .tfignore 和 .gitignore 文件以进行 TFS 集成 说明

    在 Visual Studio 中使用 TFS 集成时,即使有 .tfignore 或 .gitignore 文件表示忽略 /packages 文件夹,NuGet 也会挂起添加到 /packages 文件夹。 NuGet 应该尊重忽略文件,而不是要求用户创建具有 disableSourceControlIntegration=true 的 NuGet.config 文件。

    这可以通过调用 LocalItemExclusionEvaluator 来完成: http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.localitemexclusionevaluator.aspx

    在将项目添加到 TFS 之前,我们应该检查这个评估器。如果没有别的,我们至少应该为 /packages 文件夹做这件事。

    https://nuget.codeplex.com/workitem/4072

    【讨论】:

      【解决方案5】:

      如果您要忽略更改的文件或文件夹已签入到 TFS,那么在 .tfignore 中忽略它们不会有任何作用 - 您必须先将它们从源代码管理中删除。这样一来,对它们的任何更改都将被忽略。

      【讨论】:

        【解决方案6】:

        看起来有人叫“aheidebrecht”试图提供一个 NuGet 包以防止 NuGet 包检入 TFS。好像有点变态……

        在包管理器控制台运行...

        PM> Install-Package DisableSourceControlIntegration-TFS -Version 1.0.1 
        

        https://www.nuget.org/packages/DisableSourceControlIntegration-TFS

        【讨论】:

          猜你喜欢
          • 2016-05-30
          • 1970-01-01
          • 2015-07-28
          • 1970-01-01
          • 1970-01-01
          • 2014-10-10
          • 2014-08-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多