Зачем мне добавлять dll-пакеты NuGet в систему контроля версий?
Я привык держать dlls вне контроля источника. Это также можно легко сделать с помощью пакетов NuGet.
Однако я заметил, что некоторые популярные проекты ОС (такие как https://github.com/octokit/octokit.net, https://github.com/AutoFixture/AutoFixture) предпочитают сохранять dll-файлы включенными. Почему это так?
3 ответа
Итак, Марк Симан полностью ответил на этот вопрос в своем посте. Я полностью согласен со всеми пунктами.
Стабильный ствол всегда относится к определенным версиям DLL. Более новые или более старые версии dll могут быть несовместимы из-за измененных параметров функции и т. Д. Таким образом, сохранение ваших dll вне контроля версий может привести к потере вашей рабочей dll-версии.
Также ознакомьтесь с политикой NuGet по удалению пакетов.
Вы также найдете популярные проекты ОС, которые делают наоборот. Когда пакет помещается в репозиторий NuGet, он никогда больше не затрагивается. Я думаю, что как владелец пакета вы даже не можете изменять существующий пакет. Вы должны загрузить обновленную версию с другим номером версии. Таким образом, каждая отправленная посылка уникальна. Даже удаленные пакеты хранятся в фоновом режиме. Поэтому, если некоторые из ваших проектов ссылаются на удаленный пакет, он все равно восстанавливается, но его больше нет в репо. Мне не нравится тот факт, что я запутался в моем контроле исходного кода, и я люблю проверять только то, что необходимо для запуска программы. На самом деле вы полагаетесь на внешний ресурс. Если вам не нравится этот факт, есть еще один вариант. Вы можете запустить свой собственный репозиторий, возможно, файл, основанный на общем сетевом ресурсе, где вы храните копию пакетов, которые вы используете.