TfIgnore не работает для меня в Visual Studio 2013

Я пытаюсь заставить tfIgnore работать в Visual Studio 2013.

Я следовал инструкциям здесь: в конце этой статьи и исключил мой файл пакетов следующим образом:

\folderA\folderB\packages 

Путь выглядит хорошо и это то, что Visual Studio сгенерировал для меня. Я зарегистрировал файл в том месте, где Visual Studio его сгенерировал, и попытался восстановить его, но все пакеты по-прежнему отображаются в папке included changes в ожидании изменений.

Я перепробовал все виды других комбинаций расположения файлов и команд filespec, но, похоже, он ничего не делал.

Я что-то упускаю из виду?

Ответ 1

Ошибка NuGet может вызвать проблему. Это обходной путь:

  • Создайте папку .nuget в папке решения, если она не существует.

  • В папке .nuget создайте файл nuget.config с этим контентом:

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

Ответ 2

Я заметил, что если в папке пакетов есть один файл, например repositories.config, то шаблон .tfignore не работает.

Мое решение состояло в том, чтобы полностью удалить папку пакетов из исходного элемента управления, а затем содержимое пакетов было успешно проигнорировано

Ответ 3

В ожидающих изменениях щелкните правой кнопкой мыши папку корневого пакета → отменить. Вы должны увидеть, что ваши изменения переместились в диалоговое окно "Обнаруженные изменения", в случае исключенных изменений (окно, в котором вы можете продвигать файлы в исходное управление).

Теперь откройте .tfignore и просто добавьте packages. Вы должны увидеть, что теперь, когда вы открываете обнаруженные изменения, ваши пакеты не отображаются.

Ответ 4

У меня была такая же проблема. Я пришел и обнаружил, что в клиенте NuGet есть ошибка:

Игнорировать файлы

Примечание. В настоящее время в NuGet Client обнаружена известная ошибка, которая заставляет клиента по-прежнему добавлять папку пакетов в управление версиями. Обходной путь заключается в отключении интеграции управления версиями. Для этого вам понадобится файл nuget.config в папке .nuget, параллельной вашему решению. Если эта папка еще не существует, вам нужно ее создать. В nuget.config добавьте следующий контент:

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

И я смог заставить его работать, следуя работе, связанной в разделе "Игнорировать файлы" выше. Ниже приведен фрагмент работы ниже:

Respect.tfignore и .gitignore файлы для интеграции TFS Описание

При использовании интеграции TFS в Visual Studio NuGet будет откладывать добавление к папке /packages даже при наличии файла .tfignore или .gitignore, который говорит, что игнорирует папку /packages. NuGet должен уважать файл игнорирования, а не требовать, чтобы пользователь создал файл NuGet.config, который отключилSourceControlIntegration = true.

Это можно сделать, позвонив в 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