nuget: должен ли я зафиксировать все содержимое папки пакетов?

Я начал использовать nuget и установил несколько пакетов, большинство из которых имеют размер не более 200 КБ, но NUnit имеет размер 3 МБ.

Мое решение с открытым исходным кодом, и его загружают многие люди, я просто думаю: следует ли мне зафиксировать всю папку пакетов как есть или игнорировать файлы, отличные от dll.

как дела, ребята?


person Omu    schedule 17.12.2010    source источник


Ответы (3)


Лично я бы включил всю папку пакетов. Нет ничего хуже, чем получить проект с открытым исходным кодом, а затем искать dll, необходимые для его запуска.

Вы можете просто включить файлы .nupkg и заставить пользователя запустить пакет обновления, но тогда вы предполагаете, что у него установлена ​​​​nuget, и не забудьте запустить его.

Я думаю, что гораздо быстрее начать работу над проектом с открытым исходным кодом, в котором все с самого начала.

person lancscoder    schedule 17.12.2010
comment
Этот ответ устарел. Если вы читаете это в 2015 году или позже - см. ответ Марка Хита ниже! - person D.R.; 13.11.2015

Теперь у NuGet есть возможность повторно загрузить отсутствующие пакеты в качестве шага перед сборкой, а это означает, что вам нужно только зафиксировать файл packages.config (и включить nuget.exe в папку инструментов).

Прочтите Использование NuGet без фиксации пакетов в системе управления версиями, чтобы узнать больше. Детали.

person Mark Heath    schedule 26.05.2011
comment
Это определенно правильный ответ в наши дни. Принятый ответ устарел. Если возможно, ОП должен изменить принятый ответ на этот, если он согласен. - person NickG; 08.10.2012
comment
@NickG Я не уверен, что на этот вопрос есть правильный ответ - это компромисс (размер репозитория и способность работать в отключенных средах / уверенность в том, что зависимости не могут измениться или исчезнуть). Для меня важно то, что код успешно строится после свежего получения из системы управления версиями, и этот метод отлично работает, сохраняя при этом небольшой размер репо. - person Mark Heath; 22.03.2013
comment
Разработка веб-сайтов в автономной среде? Если это действительно произойдет, то я не хочу работать в этой компании. - person NickG; 28.03.2013
comment
Правильный ответ действительно зависит от того, что вы хотите. Работа в автономном режиме — это одна из причин включения пакетов, другая — справиться с удалением пакетов, от которых вы зависите. Печальная реальность программного обеспечения заключается в том, что иногда вы становитесь зависимыми от старых библиотек, которые больше не поддерживаются. Если они исчезнут из nuget и у вас нет копии, то вы немного облажались. - person Rory; 17.09.2013
comment
Я не знаю ни одного нормального разработчика веб-сайтов, который мог бы работать вообще без доступа в Интернет. Возможно, я графический дизайнер, но без доступа к Интернету, Google и онлайн-инструментам, которые я использую, я бы быстро ничего не достиг. Я бы сказал, что это крайний случай. Лично я бы даже не хотел работать без нескольких мониторов и уж точно не с ноутбука. Я лучше найду другую работу. - person NickG; 17.09.2013
comment
Хотя я обычно все о включении автономной работы и не имеет отношения к тому, является ли это проектом веб-сайта, я ожидаю, что будет существовать очень временное подключение к Интернету, когда код проекта с открытым исходным кодом будет впервые извлечен из репозитория. Это подходящее время для запуска функции восстановления пакетов NuGet; после этого все необходимые пакеты будут доступны в автономном режиме в рабочей копии, даже при работе на пляже. - person O. R. Mapper; 05.12.2013
comment
Если вы работаете в автономном режиме… как вы скачали мой код? о.о - person Benjamin Nolan; 23.04.2015
comment
@TwoWholeWorms Вы всегда можете создать локальный автономный репозиторий nuget, используя обычную папку Windows, или использовать прокси-сервер NuGet, например Klondike. См. codurance.com/2015/05/04/creating- a-local-nuget-repository - person Mariusz Jamro; 28.09.2017

Повторяю слова Саймона: на дворе 2010 год. В таком масштабе пропускная способность и хранилище стоят дешево. Удобство наличия пакетов с исходным кодом превосходит экономию.

person Wyatt Barnett    schedule 17.12.2010