Я пытаюсь заставить 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