kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TFS2015 Update2で新ビルドでのビルドができない(パッチが出ました)

TFS 2015をUpdate2にしたところ、こんなメッセージが出てビルドできなくなってしまいました…。ちなみにソースリポジトリはTFVCです。

2016-04-03T07:21:50.8292795Z ##[error]':' または '}' ではなく無効なオブジェクトが渡されました。 (473): {

(略)

Get-Member コマンドレットにオブジェクトを指定する必要があります。

(略)のところはメッセージが化けています。UIとかのチェックはRCのころからやっていたのですが、これはノーマークだった…。ちなみにUpdate1ではビルドできていました。エージェントの問題かと思って、VSTSからエージェントをダウンロードして、登録しなおしたのですが、それでもダメ。

ちなみに英語版のTFS2015 Update2(Gitリポジトリ)と英語版Windows 10とVisual Studio 2015の組み合わせでは正常にビルドできています。ひょとして日本語OS(ロケール)だからなのかなー。もしくは日本語のPowerShell 5.0だからなのか、ちょっと別環境もあるので、試してみます。

MSには一応報告済みなので、返事があればここでもお知らせします。

Build vnext failed | Microsoft Connect

(4/23)

修正されたというお知らせが来ました。上記のフィードバックについているURLにアクセスするとパッチのダウンロードができます。

http://go.microsoft.com/fwlink/?LinkId=786947

中身はPowerShellスクリプトで、TFSの管理者権限を持つアカウントで実行してください。展開したフォルダでPowerShellを起動して、スクリプトを以下のように実行します。myserverは適用するTFSのサーバを指定してください。

.\Install-TaskUpdate.ps1 -CollectionUrl http://myserver:8080/tfs/DefaultCollection

複数Webサーバがあっても一台だけで実行すればいいはずです。実行すると、ビルドが成功するようになるはずですが、一部の処理が文字化けします。

具体的にはdropにコピーするタスクの日本語が化けます。

2016-04-22T23:46:57.0106631Z ##[debug]load strings from: D:\agent\tasks\CopyFiles\1.0.12\node_modules\vsts-task-lib\lib.json 2016-04-22T23:46:57.0106631Z ##[debug]load loc strings from: D:\agent\tasks\CopyFiles\1.0.12\node_modules\vsts-task-lib\Strings\resources.resjson\ja-jp\resources.resjson 2016-04-22T23:46:57.0106631Z 3 莉カ縺ョ繝輔ぃ繧、繝ォ縺瑚ヲ九▽縺九j縺セ縺励◆ 2016-04-22T23:46:57.0106631Z ##[debug]file:D:/agent/work/1/s/WinFormSample/WinFormTest1/bin/Release/WinFormTest1.exe will be copied. 2016-04-22T23:46:57.0106631Z ##[debug]file:D:/agent/work/1/s/WinFormSample/WinFormTest1/bin/Release/WinFormTest1.exe.config will be copied. 2016-04-22T23:46:57.0106631Z ##[debug]file:D:/agent/work/1/s/WinFormSample/WinFormTest1/bin/Release/WinFormTest1.pdb will be copied. 2016-04-22T23:46:57.0106631Z ##[debug]path exists: D:\agent_work\1\a 2016-04-22T23:46:57.0106631Z ##[debug]Creating folder D:\agent_work\1\a\WinFormSample\WinFormTest1\bin\Release 2016-04-22T23:46:57.0106631Z ##[debug]creating path: D:\agent_work\1\a\WinFormSample\WinFormTest1\bin\Release 2016-04-22T23:46:57.0106631Z D:/agent/work/1/s/WinFormSample/WinFormTest1/bin/Release/WinFormTest1.exe 繧・D:\agent_work\1\a\WinFormSample\WinFormTest1\bin\Release\WinFormTest1.exe 縺ォ繧ウ繝斐・荳ュ 2016-04-22T23:46:57.0327946Z D:/agent/work/1/s/WinFormSample/WinFormTest1/bin/Release/WinFormTest1.exe.config 繧・D:\agent_work\1\a\WinFormSample\WinFormTest1\bin\Release\WinFormTest1.exe.config 縺ォ繧ウ繝斐・荳ュ 2016-04-22T23:46:57.0327946Z D:/agent/work/1/s/WinFormSample/WinFormTest1/bin/Release/WinFormTest1.pdb 繧・D:\agent_work\1\a\WinFormSample\WinFormTest1\bin\Release\WinFormTest1.pdb 縺ォ繧ウ繝斐・荳ュ

原因としては、タスクがnode.jsベースで動くようになっています(たぶんUpdate2からだと思うのですが)。なので、コンソール出力がCP932であることを意識せずに出しているからなのでしょう。フィードバックはしていますが、文字化けなのでそんなに急いで対応されないかもしれません…つついてはみます。

これ調べていて少しだけビルドタスクがわかりました。