Visual Studio Team Service で Xamarin.Android のビルド

Visual Studio Team Service で Xamarin.Android のビルドを試みて、最初うまく行かなかったので、その時の問題と回避策をここに記録します。自分用メモです

vsts_xamarin_android

  1. [VSTS] プロジェクトを作った
  2. [ローカル] リポジトリ、push
  3. [VSTS] デフォルトの Xamarin.Android のビルド definition でビルドすると動かない(エラー)
    1. 2017-02-11T09:26:54.4047838Z ##[error]C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1862,3): Error : java\lang\Object.class(java\lang : Object.class)
    2. ローカル(私のXamarinの環境は最新のアルファチャネル)で作ったプロジェクトの Xamarin環境と、VSTSのビルドサーバの Xamarin環境のバージョンの不一致ではないかと推測。
    3. 取り敢えずの処置として、ローカルにエージェントを立てて、ビルドはローカルで走らせることにした
  4. [VSTS+ローカル] ビルドエージェントを入れた(手順書(英語)
  5. [VSTS] エージェント入れたのはいいけど、ビルド時どうやってエージェントを使うのか分からなかった。→[Queue new build] → [Queue]の Hosted->Default(自分がつけたagentの名前)
  6. それでも(私の環境だと)MSBuild.exe が無い、というエラーが出て動かない
    1. 2017-02-11T10:02:56.0622340Z MsBuild.exe does not exist at '/Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/4.5/msbuild.exe'.
    2. 2017-02-11T10:02:56.0940450Z ##[error]Error: /Library/Frameworks/Mono.framework/Versions/Current/Commands/mono failed with return code: 1

[VSTS] NuGet restore するタスクで、NuGet の path を、明示的に指定した (/Library/Frameworks/Mono.framework/Versions/Current/Commands/nuget)

動いた!

screen-shot-2017-02-11-at-19-41-30