Cygwin 上で MSBuild を使って複数ソリューションをまとめてビルドする
kawa.xxx
環境
- 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 されます。コマンドプロンプトと違ってカラー表示がなくなるのがたまにキズですが、少しググッて見た感じだと現時点ではどうしようもなさそうですね…
参考文献
ABOUT ME