mono 5.0+ を導入後 Xamarin.Forms 2.3.4 未満がビルドできないときの対応

  • 6
    いいね
  • 0
    コメント

起こっていること

2017年4月10日現在,Xamarin Studio(以下XS)のalphaチャンネルなどを使っていたり,Visual Studio for Mac - Preview6以降(以下VS4M)を使っていると mono 5.0.0.42 をインストールすることが出来ます.

ですがこのアップデートを適用後 Xamarin.Forms 2.3.4 未満(正しくは2.3.4 preview3未満)のプロジェクトがビルドできないといったことが起こっています.

また Fody を使うようなライブラリ(Realmなど)でも同様の現象が起こっているようです.
改善されました.

要するに,こういう状態です.

Xamarin.Forms 2.3.4以降 未満
mono 5.0+ OK NG
mono 4.8.0 OK OK

解決策

XS を使っている人は Project->Active Runtime->Mono4.8.0 を選択し,明示的に mono4.8.0を使うようにすることで対処することが出来ます.

VS4M を使っている人も同様のことを行うことで対処することも出来ますが,ビルドのステップが止まってしまうことも確認できています.

結論

何かしらの事情がないのであれば Xamarin.Forms 2.3.4 にアップデートしてしまうのが一番簡単だと思います.

しかしバージョンが上げられないなどの事情がある場合は Active Runtimeを mono4.8.0に変更して開発するしかないようです.
また Fody を使う場合であれば,今は mono4.8.0を使うしかなさそうです.

VS4MacのPreview6の起動にmono5.0+が要求されるから 前あげた雑なやり方で対処できない...

確かめていないけど起こりそうだなあと思っていること

Xamarin Mac Agentを使用する際に
macでdotnetのSDKやmonoのバージョンをシステムレベルで変えたいときにやったこと
であげているように
/Library/Frameworks/Mono.framework/Versions/Current以下の/Commands/xbuildが叩かれているとしたら,おそらくmono 5.0.0を導入した際 Currentが5.0.0に向いているはずなので失敗する恐れがあります.

どなたか検証して教えていただければ...と思います(人任せ)