Рейк + Альбакор. Создание Проекта .Net С Использованием Ruby

Когда дело доходит до сборки .

Net-проектов, первое, что приходит на ум, — это утилита MSBuild + сопутствующие сценарии сборки.

Действительно, пока проект небольшой, его возможностей вполне достаточно.

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

В нашем случае таким решением оказалась комбинация Rake+Albacore. Что это такое? Rake — инструмент для автоматизации сборки программного кода, написанный на Ruby. На хабе уже была достаточно подробная информация о Rake статья пользователь Lass_ua (за что ему, кстати, большое спасибо), поэтому повторяться не буду.

Скажу лишь, что мы выбрали его из-за его исключительной гибкости, которую нам не удалось получить от скриптов MSBuild. Это связано с тем, что весь процесс сборки описывается, по сути, программой Ruby, что открывает перед нами море возможностей.

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



Что такое Альбакор?
Фактически, Альбакор — это просто набор пользовательских задач для Rake, направленных на создание .

Net-проектов.

Вот их полный список:

  • Компилятор ASP.NET
  • Генератор информации о сборке
  • CSC — компилятор C-Sharp
  • Exec – выполнить любую произвольную командную строку
  • Свободный мигратор
  • MSBuild
  • MSpec
  • МСТест
  • Нант
  • НЧурн
  • Консоль NCover
  • Отчеты Ncover
  • NDepend
  • NugetPack – создание пакетов .

    nuget из файла .

    nuspec.

  • NugetPush – размещение пакетов .

    nuget в Интернете.

  • NugetPublish – публикует пакеты .

    nuget в Интернете.

  • Нунит
  • Nuspec – создание файла .

    nuspec для создания пакета .

    nuget.

  • Вывод — общие задачи вывода сборки, включая копирование файлов и расширение шаблона.

  • Плинк
  • SQLCmdTask
  • Разархивировать
  • XUnit
  • Почтовый индекс


Установка и использование
Установка Rake и Albacore:
  
  
  
  
   

gem install rake



gem install albacore

Чтобы использовать Albacore, просто включите соответствующий модуль в вашем rake-файле.



require 'albacore'

Теперь мы можем помимо задач Rake использовать еще и задачи Albacore. В нашем случае наиболее часто используемыми из них являются MSBuild (фактически вызов MSBuild.exe с заданными параметрами) и Exec (Выполнение произвольной команды в командной среде Windows).

Вызов MSBuild:

msbuild :build_solution do |msb| msb.properties = { :configuration => :Debug } msb.targets = [ :Clean, :Build ] msb.solution = "path/to/your/solution.sln" end

Единственное обязательное поле здесь — решение.

Подробные инструкции по использованию этого задания можно найти Здесь Для Exec нужно определить всего два поля — саму команду и ее параметры

exec do |cmd| cmd.command = "LIB\\sgen\\sgen.exe" cmd.parameters = "BIN\\mylovely.dll /force" end

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

Net-проекта.

В нашем проекте мы используем для тестирования Галлион , которого нет в этом списке.

Но, как оказалось, сообщество Ruby позаботилось о таких как мы, и первая ссылка по запросу «gallio rake» привела меня на github:gist с кодом соответствующей задачи.



Впечатление
Переход на связку Rake+Albacore оказался очень быстрым и безболезненным, и мы получили необходимую гибкость при сборке проекта.

Ruby для меня новый язык, и я приятно удивлен количеством информации и различных полезных кусков кода, которые присутствуют в Интернете, а также удобством и возможностями самого языка.

Думаю, этим мое знакомство с ним не ограничится; Я планирую продолжать использовать его в нашем проекте для небольших сопутствующих утилит. Теги: #rake #ruby #albacore #.

NET #сборка проекта #ruby #.

NET

Вместе с данным постом часто просматривают: