Для VS2015 и VS2017
Работает с TFS (локально) или VSO (Visual Studio Online - предложение, размещенное на Azure)
Документация NuGet содержит инструкции о том, как этого добиться, и я только что успешно следовал им в Visual Studio 2015 и Visual Studio 2017 против VSTS (TFS, размещенной в Azure). Все полностью обновлено по состоянию на ноябрь 2016 г. Август 2018 г.
Я рекомендую вам следовать инструкциям NuGet, но просто чтобы напомнить, что я сделал:
- Убедитесь, что ваша
packagesпапка не привязана к TFS. Если это так, вытащи это оттуда.
- Все остальное, что мы создаем ниже, попадает в ту же папку, в которой находится ваш
.slnфайл, если не указано иное (инструкции NuGet не совсем ясны по этому поводу).
- Создать
.nugetпапку. Вы можете использовать Windows Explorer, чтобы присвоить ему имя, .nuget.чтобы он успешно сохранялся как .nuget(он автоматически удаляет последний период), но прямая попытка присвоить ему имя .nugetможет не сработать (вы можете получить сообщение об ошибке или изменить имя в зависимости от вашей версии Windows. ). Или назовите каталог nuget и откройте родительский каталог в командной строке. тип. ren nuget .nuget
- Внутри этой папки создайте
NuGet.configфайл, добавьте следующее содержимое и сохраните его:
NuGet.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
- Вернитесь в свою
.slnпапку и создайте новый текстовый файл и назовите его .tfignore(если вы используете Windows Explorer, используйте тот же прием, что и выше, и назовите его .tfignore.)
- Поместите в этот файл следующее содержимое:
.tfignore:
# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's
# not in the same folder as .tfignore.
packages
# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
- Сохраните все это, зафиксируйте его в TFS, затем закройте и снова откройте Visual Studio, и Team Explorer больше не должен определять папку пакетов как ожидающую регистрацию.
- Скопируйте / вставьте через Windows Explorer
.tfignoreфайл и .nugetпапку во все мои различные решения и зафиксируйте их, и у меня больше нет packagesпапки, пытающейся проникнуть в мое хранилище с контролем исходного кода!
Дальнейшая настройка
Хотя это не мое, я нашел этот .tfignoreшаблон Sirkirby, чтобы быть полезным. Пример в моем ответе охватывает packagesпапку Nuget, но этот шаблон включает в себя некоторые другие вещи, а также предоставляет дополнительные примеры, которые могут быть полезны, если вы хотите настроить это дальше.