Файлы Nuget блокируются каждый раз, когда происходит сбой сборки Gated Checkin
Я знаю, что восстановление NuGet может установить блокировки извлечения для папки пакета и содержащихся в нем файлов. Но почему TFS Build не снимает эти блокировки в случае сбоя Gated Checkin Build из-за ошибок компиляции?
При сбое Gated Checkin Build Visual Studio не позволяет отменить изменения, поскольку файлы блокируются службой TFS на сервере сборки.
TFS Sidekick показывает несколько файлов, заблокированных учетной записью службы TFS.
2 ответа
Если ваше решение настроено на восстановление пакетов NuGet, вам не нужно проверять пакеты в TFS, так как они будут восстановлены при сборке. Если в вашем решении выбрано Восстановление пакетов, TFS не будет пытаться добавить пакеты в папку пакетов.
Как говорит MrHinsh, папка "Ваши пакеты" в TFS не должна содержать ничего, кроме файла Config
Вариант 1: Вам нужно добавить.tfignore в папку пакетов с "*/" в качестве фильтра. Вы фактически никогда не хотите проверять что-либо в этой папке, кроме файла конфигурации.
http://msdn.microsoft.com/en-us/library/ms245454.aspx
Вариант 2: (Лучше) Добавьте файл nuget.config в ваше решение, условно поместить его в папку с именем.nuget, но он также может остаться в корневом каталоге. Содержание должно быть:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
Это исключит папку пакетов, вам там ничего не нужно. ПРИМЕЧАНИЕ. Если вы используете NuGet 2.7 или выше, автоматическое восстановление включено по умолчанию. Не используйте "Включить восстановление NuGet" в своем решении, это добавляет старый способ сделать это. См. http://geekswithblogs.net/terje/archive/2014/06/11/converting-projects-to-use-automatic-nuget-restore.aspx