もう少し汎用的に使えるビルドスクリプト

SubVersionから最新ソースを取得してリビルドするサンプルスクリプト
PropertyGroupは適宜変更してください

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="BuildAll"  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <!-- カスタムタスクライブラリ MSBuildCommunityTasksを利用するための設定 -->
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />

  <PropertyGroup>
    <!-- ビルドプロジェクト名 -->
	<ProjectName>BuildProj</ProjectName>
    <!-- SubVersionリポジトリ -->
	<RepositoryPath>svn://localhost/BuildTest/trunk</RepositoryPath>
    <!-- SubVersionユーザ -->
	<RepositoryUser>harry</RepositoryUser>
    <!-- SubVersionパスワード -->
	<RepositoryPassword>harryssecret</RepositoryPassword>
    <!-- ビルド用ワークディレクトリ -->
	<WorkingDirectory>.\Build</WorkingDirectory>
    <!-- コンフィグ -->
	<BuildConfig>Release</BuildConfig>
    <!-- SMTPサーバ -->
	<SMTPServer>SMTPServer</SMTPServer>
    <!-- エラーメール送信先 -->
	<ErrorMailAddress>to_address@hogehoge.com</ErrorMailAddress>
  </PropertyGroup>
  
  <!-- ワークディレクトリを削除する -->
  <Target Name="CleanSource">
    <Message Text="Removing all source files from $(WorkingDirectory)" />
    <RemoveDir Directories="$(WorkingDirectory)" />
  </Target>
  
  <!-- Svnから最新のソースコードを取得する -->
  <Target Name="GetLatestFiles">
	<Message Text="Checking out trunk into $(WorkingDirectory)" />
	<SvnExport 
        RepositoryPath="$(RepositoryPath)" 
        LocalPath="$(WorkingDirectory)"
        UserName="$(RepositoryUser)"
        Password="$(RepositoryPassword)"> 
            <Output TaskParameter="Revision" PropertyName="Revision" />
    </SvnExport>
    <Message Text="Have got revision: $(Revision)"/>
  </Target>

  <!-- 取得したソースコードをコンパイルする -->
  <Target Name="Build">
	<MSBuild Projects="$(WorkingDirectory)\$(ProjectName)\$(ProjectName).csproj" 
	         Targets="ReBuild"  Properties="Configuration=$(BuildConfig);" />
    <!-- ビルド失敗時に実行するタスク -->
	<OnError ExecuteTargets="ErrorMail" />
  </Target>
  
  
  <!-- ビルド失敗時メールを送信する -->
  <Target Name="ErrorMail" >
      <Mail SmtpServer="$(SMTPServer)" From="noreply@example.com" To="$(ErrorMailAddress)" 
          Subject="自動ビルド失敗  $(ProjectName)プロジェクト" Body="$(ProjectName)プロジェクトビルドに失敗しました。" />
  </Target>
  
  <!-- ビルドプロセスを実行する -->
  <Target Name="BuildAll">
    <CallTarget Targets="CleanSource" />
    <CallTarget Targets="GetLatestFiles" />
    <CallTarget Targets="Build" />
  </Target>
</Project>

ビルドファイルの作成

プロジェクトファイルをリビルドし、エラー時は指定先へメールを送信する最低限のファイル。

<?xml version="1.0" encoding="utf-8" ?>
<Project 
  DefaultTargets="Build" 
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- カスタムタスクライブラリ MSBuildCommunityTasksを利用するための設定 -->
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
 <Target Name="Build" >
      <!-- プロジェクトのリビルド -->
	 <MSBuild Projects="C:\BuildTest\BuildProj\BuildProj.csproj" 
	         Targets="ReBuild"  Properties="Configuration=Release;" />
     <!-- ビルド失敗時に実行するタスク -->
     <OnError ExecuteTargets="ErrorMail" />
  </Target>
  <!-- ビルド失敗時メールを送信する -->
  <Target Name="ErrorMail" >
      <Mail SmtpServer="SMTPServer" From="noreply@hogehoge.com" To="to_address@hogehoge.com"
          Subject="Msbuildビルド失敗" Body="プロジェクトビルドに失敗しました。" />
  </Target>
</Project>

ファイル内の以下の部分は適宜修正してください。(プロジェクトファイルのパスとSMTPサーバと送信先メールアドレス)
Projects="C:\BuildTest\BuildProj\BuildProj.csproj"
SmtpServer="SMTPServer"
To="to_address@hogehoge.com"

MSBuildCommunityTasksのインストール

msbuildの標準機能ではメール送信が出来ないため、MSBuildCommunityTasksをインストールします。

インストール時にエラーになる事があります。( Failed to open XML file, system error:-2147024786

その場合は以下の手順でとりあえず使えるようになります。

  1. ソース一式をダウンロードして解凍します。
  2. 続いてC:\Program Files\MSBuild\MSBuildCommunityTasks フォルダを作成し、解凍したフォルダから「MSBuild.Community.Tasks.Targets」と「MSBuild.Community.Tasks.dll」をコピーしてください。
  • (ヘルプファイルも解凍したフォルダ内にあります)

ネオダマ

会社で打ち合わせ時、見慣れない文字が書いてあった
「ネオダマ」
隣の人に聞いても「さあ?」って。
そしたら上司が「えっ、murasuke知らないの?」って目を丸くして言われた。

  • ネットワーク
  • オープン化
  • ダウンサイジング
  • マルチメディア

の略で、当時(いつだよ)の流行語だったらしい・・・・


いや、私、オフコン世代じゃないですし・・・・

ソフトサイエンスシリーズ 第28回 「世界に広がるRuby」 〜生み

地下鉄の広告でたまたま見た中京大学公開講座
ソフトサイエンスシリーズ 第28回 「世界に広がるRuby」 〜生みの親が語る〜に興味があったので申し込んで見ました。

10月12日(金)なので仕事半休して行ってみようかと。
会社から歩いても30分ほどだし。


RubyってRubyを256倍使うための本 極道編Rubyを256倍使うための本 邪道編 読んで面白い言語だなと思ったけど
仕事のコンピュータに入れるわけにも行かなかったから結局使わなくなったんだな。確か。
また興味がでてきた!


抽選当たればいいなー