Следует ли помещать самостоятельно созданные пакеты NuGet в систему контроля версий?

Я начал создавать пакеты NuGet для некоторых часто используемых проектов зависимостей, для которых мы использовали svn:externals в наших решениях ASP.NET. Я размещаю файлы .nupkg в сетевой папке и использую расположение этой папки в качестве веб-канала NuGet.

Я не уверен, какие файлы помещать в систему контроля версий и где. Вы помещаете файлы .nuspec и .nupkg в свой репозиторий? Попадают ли файлы .nuspec и .nupkg в систему управления версиями проекта? Я думал, что поскольку файл .nuspec генерирует файл .nupkg, вам понадобится только этот файл в системе контроля версий. Но я также подумал, что было бы неплохо сделать сетевую папку, которую я использую в качестве канала NuGet, репозиторием. Затем я могу управлять версиями файлов .nupkg.

Каковы некоторые рекомендации по управлению версиями созданных пакетов NuGet?


person JustinP8    schedule 07.02.2012    source источник


Ответы (1)


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

Поскольку номер версии включен в имя файла .nupkg, вы можете одновременно иметь разные версии пакета в репозитории. Вам нужно либо использовать форму <version>$version$</version> в файле .nuspec, и установить версию сборки на автоинкремент, либо просто каждый раз вручную менять номер версии. Затем вы можете сделать тег Subversion для этого номера версии, чтобы вы могли вернуться к исходному коду для конкретной версии пакета, если вам это нужно.

Чтобы клиентские проекты могли автоматически включать исправления незначительных ошибок в наши пакеты, мы собираемся включить восстановление пакетов NuGet в клиентских проектах и ​​публиковать пакеты с короткими фиксированными номерами версий, например "1.2". Когда в пакете будет простое исправление ошибки, мы повторно опубликуем его с тем же номером версии. Это перезапишет предыдущую версию в репозитории; затем клиентские проекты получат обновление при восстановлении пакетов на этапе сборки.

person Carl Raymond    schedule 07.02.2012