CygwinでMSBuildを実行する


Cygwinの文字コードをUTF-8にしているとMSBuildの出力がShift-JISなので文字化けしてしまいます。

$ "/cygdrive/c/Program Files (x86)/MSBuild/12.0/Bin/MSBuild.exe" /version
Microsoft (R) Build Engine ▒o▒[▒W▒▒▒▒ 4.0.30319.18408
[Microsoft .NET Framework▒A▒o▒[▒W▒▒▒▒ 4.0.30319.18444]
Copyright (C) Microsoft Corporation. All rights reserved.

4.0.30319.18408

これは出力をnkfを使ってUTF-8に変換すると解決できます。

nkfのインストール手順は以下のとおり。

  1. Cygwinで適当なディレクトリを作成して移動する。

    $ mkdir nkf-build
    $ cd nkf-build

  2. nkfをダウンロードして1のディレクトリに保存する。

  3. 解凍する。

    $ tar -zxvf nkf-2.1.3.tar.gz

  4. インストールする。

    $ cd nkf-2.1.3
    $ make
    $ make install

  5. インストールできたか確認する。

    $ nkf --version

あとはMSBuildの出力をnkfに通せば文字化けせずに出力されます。

$ "/cygdrive/c/Program Files (x86)/MSBuild/12.0/Bin/MSBuild.exe" /version | nkf -w
Microsoft (R) Build Engine バージョン 4.0.30319.18408
[Microsoft .NET Framework、バージョン 4.0.30319.18444]
Copyright (C) Microsoft Corporation. All rights reserved.

4.0.30319.18408