я бы хотел знать
В проекте C # или VB.NET мы должны включить папку PACKAGE (папку пакета nugget, которая создается в корне моего проекта, содержащего файлы nupkg и другое содержимое) в наш репозиторий контроля версий (например, Git).
я бы хотел знать
В проекте C # или VB.NET мы должны включить папку PACKAGE (папку пакета nugget, которая создается в корне моего проекта, содержащего файлы nupkg и другое содержимое) в наш репозиторий контроля версий (например, Git).
Ответы:
Прошло много времени, и NuGet изменился, поэтому вот новый ответ.
NuGet больше не создает папку пакетов внутри вашей исходной структуры. Вместо этого есть один в вашем пользовательском каталоге ( %HOME%\.nuget\packages
если быть точным), куда он помещает все загружаемые пакеты, и проекты просто ссылаются на них.
Итак, простой ответ в эти дни - нет, вы не должны. Если вы беспокоитесь о пакетах, которые нужно удалить, вам следует создать локальное зеркало NuGet, резервное копирование которого производится отдельно.
По-разному.
Посмотрите ответ Барта ван Ингена Шенау, чтобы определить, можно ли packages
вообще игнорировать папку.
По сути: да, NuGet спроектирован так, что вы можете игнорировать packages
папку, и NuGet будет извлекать все из Интернета, если он отсутствует.
Но стоит ли это игнорировать? Я говорю: это зависит.
ИМО, это вопрос "можем ли мы продолжать работать, если репозиторий пакетов недоступен" (будь то временно или постоянно)
Для моих личных проектов OSS у меня packages
папка игнорируется во всех них.
Когда nuget.org не в сети, я просто подожду и продолжу еще один день.
Но это что-то другое на работе.
Конечно, вы, вероятно, все еще имеете пакеты локально на каком-то компьютере, но экономит ли вам место, которое стоит хлопот, когда ваши сборки ломаются, потому что ваш сервер сборки не может достичь nuget.org?
Мы решили, что пространство дешево, и нам не нужны хлопоты, поэтому мы передаем packages
папку в систему контроля версий.
Основное правило для того, что входит в репозиторий управления исходным кодом, состоит в том, что вы храните там все, что связано с проектом, которое необходимо для создания, тестирования, развертывания и выполнения проекта и которое нельзя создать из элементов, уже присутствующих в репозитории. ,
Другими словами, если вы можете выбросить папку PACKAGE и ее содержимое, не влияя на ваши возможности, продолжить работу над проектом (сборка может занять больше времени, но вам не нужно искать и устанавливать что-либо самостоятельно), тогда папка может быть в безопасности из хранилища.
Если в папке содержатся сторонние пакеты, загрузка которых может занять много времени или которые могут стать недоступными, это может быть причиной для добавления их в ваш репозиторий в любом случае.