Создание nuspec файлов автоматически

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

Для начала надо заполнить данные об авторе и компании в настройках проекта. Это можно сделать либо в ручную отредактировав файл AssemblyInfo.cs

 

Либо в настройках проекта на первой вкладке можно перейти на окошко Assembly Info и там заполнить необходимые поля.

Это важно, так как информация о пакете будет браться оттуда. Пока что концепция NuGet не может быть полностью отображена с помощью файла AssemblyInfo, так что файл nuspec нужен до сих пор. Ну да это не беда, уже не надо его писать руками полностью.

Файл спецификации nuspec создается с помощью команды spec. При этом рабочая директория должна быть та, где лежит файл проекта.

Таким образом настройка внешних инструментов будет выглядеть следующим образом.

После того, как завершите настройку nuget, как инструмента создания nuspec файлов, можно использовать его. Выбираем проект, который будет оформлен в виде Nuget пакета, Tools > Generate NuSpec и получаем нужный нам файл.

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

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

 

Ненужные строки можно удалить или дополнить. Понятное дело, что иконку, соглашение и ссылку на проект и некоторые другие система не знает, так что это надо заполнить самостоятельно.

После этого можно будет вносить дополнительные данные в файл, указывать файлы для упаковки, зависимости.

После того, как все готово, можно вызывать nuget.exe с параметрами упаковки и передавать путь не до .nuspec файла, а путь до самого проектного файла. Т.е. примерно так

C:\nuget\nuget.exe pack c:\projects\LibraryForNuget\LibraryForNuget.csproj

После этого в проекте найдется ссылка на nuspec файл, проект соберется и упакуется в необходимый пакет со всеми указанными данными.

Можно пользоваться =))

 

Hard’n’heavy!

 

Оставить комментарий