[ Home on 246net ] [ C# Top ]
.NET Frameworkランタイムには、.NETプログラムをビルドするためのツールであるMSBuildが含まれています。これは、XMLで記述したプロジェクト設定ファイルに基づき、アセンブリをビルドしたり、実行するといった作業を行います。いわゆるmakeツールに相当します。
Visual Studioで作成したプロジェクトファイルも、このMSBuildで実行可能なXMLファイルとなっています。したがって、Visual Studioで開発したプログラムを、コマンドラインでビルドする場合、そのままこのMSBuildコマンドでビルドすることができます。
まずは、HelloWorldプログラムをビルドする簡単なプロジェクトファイルを作成し、実行します。
HelloWorld.csを1つビルドしexeを作成する最低限のプロジェクトファイルを記述します。
Hello.proj
<?xml version="1.0" encoding="utf-8"?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <CSFile Include="HelloWorld.cs"/> </ItemGroup> <Target Name="Build"> <CSC Sources="@(CSFile)"/> </Target> </Project>
ファイルはUTF-8でエンコーディングします。
コンパイル対象ソースファイル名をItemGroupの子要素CSFileで指定しています。
コンパイルはTargetの子要素CSCで指定します。今回はコンパイル対象ソースファイル名だけ指定し、それ以外はデフォルトに任せています。
ビルドの実行は
C:\work\hello> MSBuild Hello.proj Microsoft (R) Build Engine Version 4.0.30319.1 [Microsoft .NET Framework, Version 4.0.30319.1] Copyright (C) Microsoft Corporation 2007. All rights reserved. 2010/06/12 21:49:54 にビルドを開始しました。 ノード 1 上のプロジェクト "C:\work\hello\Hello.proj" (既定のターゲット)。 Build: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Csc.exe /out:HelloWorld.exe Hel loWorld.cs プロジェクト "C:\work\hello\Hello.proj" (既定のターゲット) のビルドが完了しました。 ビルドに成功しました。 0 個の警告 0 エラー 経過時間 00:00:00.32 C:\work\hello>
MSBuildの使い方については、いくつか紹介記事等があります。