NuGet создание

В прошлый раз я рассказал как используется NuGet, в этот раз логично рассказать, как создать свой NuGet пакет и разместить его на общем хостинге или же на своем, в локальной директории, либо же в галерее.

Создание своего пакета NuGet

Для примера, и, на мой взгляд в большинстве случаев, вы будете создавать NuGet пакет без зависимостей от других пакетов. Т.е. нам нужен будет любой проект, для простоты пусть это будет простая библиотека с N-ным количеством методов.

Для того, чтобы можно было библиотеку или набор библиотек включить в итоговый NuGet пакет,  необходимо добавить в проект файл с расширением “.nuspec”, где будут описаны все свойства и внутренние зависимости нашего пакета. Пока что в студии нет настроек для создание файлов требуемого расширения, так что можно создать любой текстовый файл, и сменить ему расширение.

В общем виде файл nuspec выглядит следующим образом:

 

Можно сказать, что комментарии тут излишни.  Единственное что стоит указать, какие тэги обязательны, а какие опциональные.

Подробнее

NuGet использование

Сегодня я хотел бы рассказать о использовании NuGet. Наверняка вы уже что-то слышали об этой системе управления внешними зависимостями. В последнее время система набирает обороты и все больше и больше разработчиков помещают свои системы в обертки для распространения с помощью NuGet.

Итак, NuGet – это менеджер для управления зависимостями от сторонних библиотек. С помощью этого инструмента можно устанавливать, обновлять и убирать зависимости для вашего проекта с большой легкостью. Применимо как для desktop программ, так и для web. В частности при разворачивании CMS Orchard, она половину сборок тащит при установке самостоятельно из библиотеки пакетов. Есть примеры использования NuGet для Silverlight.

Реплики с галерки

При изучении материалов по NuGet, основым плюсом выступает доступность общих библиотек для ваших проектов. Условные противники NuGet, или же принципиальная оппозиция спрашивает, зачем нужен NuGet для своих общих библиотек, если можно существует external для SVN и другие подобные штуки для систем контроля версий? Т.е. можно сослаться на стабильную ветку исходников.

Разработчики NuGet отвечают, что

  • не надо контроллировать доступ к системе контроля версий,
  • исходный код не показывается другим группам,
  • не надо следить и переключаться на другие ревизии вручную (может вы захотели соскочить с ветки Release, на более ранюю, или вы ссылаетесь на ревизию в trunk)

Неплохие плюсы. Тем более что теперь ваша любимая библиотека не затеряется среди репозиториев и проектов.

Подробнее