かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

Cygwin 上で MSBuild を使って複数ソリューションをまとめてビルドする

環境

  • Windows 8.1
  • Visual Studio 2015 Pro

環境変数の設定

システムのシステムの詳細設定の詳細設定のタブのシステム環境変数内の Path に下記の値を追加します。

C:\Program Files (x86)\MSBuild\14.0\Bin;

パスは使用しているバージョンによって若干違います。cygwin からは msbuild.exe と打つと使えます。 msbuild で実行できるものと思っていてちょっとハマりました。

文字化け対応

cygwin の文字コードを UTF8 にしているので SJIS で出力する msbuild は文字化けします。この辺とかを参考に nkf をインストールして

msbuild.exe | nkf -w

で文字化けせずに表示できます。

project ファイルの作成

all-build.proj という名前で下記のような内容で作りました。記載されている、それぞれのソリューションはVisualStudioで開いて正常にビルドができることを前提にしています。

<?xml version="1.0" encoding="utf-8" ?><Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <ItemGroup>
 <Solution Include="path\a.sln" />
 <Solution Include="path\b.sln" />
 <Solution Include="path\c.sln" />
 <Solution Include="path\d.sln" />
 </ItemGroup>
 <Target Name="Rebuild">
 <MSBuild Projects="@(Solution)" Targets="Rebuild"/>
 </Target>
</Project>

Build の実行

上記の proj ファイルを配置した ディレクトリで msbuild.exe | nkf -wですべてのソリューションが VisualStudio でいうところの ReBuild されます。コマンドプロンプトと違ってカラー表示がなくなるのがたまにキズですが、少しググッて見た感じだと現時点ではどうしようもなさそうですね…

参考文献