IronRuby in MSBuild Skripten?! Warum? Dynamik!
Durch die Verwendung von IronRuby in MSBuild kann man schnell und einfach Anforderungen innerhalb des MSBuild Files Scripten und hierbei sowohl auf Ruby als auch auf die CLR durch IronRuby zugreifen.
Ein einfaches Beispiel ist, die Automatisierung der IIS7 API durch dessen Hilfe einfach Aktionen im IIS durchgeführt werden können.
<?xml version="1.0" encoding="utf-8" ?>
<Project
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
DefaultTargets="ironTarget">
<UsingTask AssemblyFile="D:\\IronMSBuild.dll"
TaskName="IronMSBuild.Tasks.IronTask"></UsingTask>
<PropertyGroup>
<RubyScript Condition="'$(RubyScript)'==''">
<![CDATA[
require 'Microsoft.Web.Administration,
Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
include Microsoft::Web::Administration
sm = ServerManager.new
site = sm.Sites.Add('IronSite','D:\\BuildScripts\\', 82)
site.ServerAutoStart = true
sm.CommitChanges()
]]>
</RubyScript>
<DlrLanguage Condition="'$(DlrLanguage)' ==''">IronRuby</DlrLanguage>
</PropertyGroup>
<Target Name="ironTarget">
<IronMSBuild.Tasks.IronTask
IronLanguage="$(DlrLanguage)"
IronScript="$(RubyScript)" />
</Target>
</Project>
In diesem Beispiel habe ich die IronMSBuild.dll über den Pfad zur Assembly integriert. Weiter unten im Post findet ihr aber auch den Downloadlink zur signierten Version von IronMSBuild, wodurch ihr IRonMSBuild dann über den FQAN referenzieren könnt.
Sowohl RubyScript als auch die IronLanguage Property des IronTask’s habe ich nach außen promoted damit diese alternativ auch bequem als Parameter an die MSBuild.exe angehangen werden können.
Hier könnt ihr die signierte Version der IronMSBuild.dll downloaden
Viel Spass damit
Technorati Tags:
DLR,
IronRuby,
MSBuild