Windows系のあれこれ

港区の SIer で Windows 系の開発に従事している SE みたいな人です。Xamarin 中心です。

Visual Studio 2017 Version 15.2 にアップデートしたら Xamarin.Forms の Android アプリがすごい遅くなったから回避した

============================================
2017/5/31 追記
Visual Studio 2017 version 15.2 (26430.12) で対応されたようです。
>Fixed a performance dedgration sometimes occuring in Xamairn Android apps.
Visual Studio 2017 Release Notes
============================================

============================================
2017/5/25 追記
Mac、VS 2015 は対応されたようです。
Stable Release: 15.2.2 Servicing Release | Xamarin Releases


2017 はまだかな…
============================================

============================================
2017/5/17 追記
下記手順を行うと Android の Release ビルドで作成したアプリがうまく動かなくなります。
Debug 時の回避手段とお考え下さい。
============================================

※この記事の手順は自己責任でお願いします。

タイトルの通りです。
Xamairn.Forms、Prism(Unity) で作成した Android アプリがなんか InitializeComponent で数秒かかる感じに遅くなったんです。
Android 4.4では発生せず、6.0、7.0で現象を確認できました。

環境は以下の通り。

  • Windows 10 Pro Creators Update (バージョン1703、ビルド15063)
  • Visual Studio 2017 Version 15.2 (26430.4)
  • Xamarin 4.5.0.443
  • Xamarin.Android.SDK 7.3.0.13


色々皆さんのご協力をいただき、対症療法的に回避しました。

調べていると下記 bugzilla がヒットしてみんな Xamarin.Android 7.3 が原因っぽいことを言っています。

56240 – Performance Degradation When Using Expressions

ということで Xamarin.Android を前のバージョンにダウングレードしたいと思います。

下記サイトから以前の Xamarin インストーラー(4.4)をダウンロードしてきます。

※ Xamarin のアカウントが必要です。
https://store.xamarin.com/account/my/subscription/downloads
f:id:ShunsukeKawai:20170515215324p:plain

ダウンロードした Xamarin インストーラーを起動します。

※この時点で Build Tools 2015 が必要です。みたいなことを言われたらインストールしてください。
Download Microsoft Build Tools 2015 from Official Microsoft Download Center

インストーラー起動後、今回は Xamarin.Androidだけ必要なので、他のチェックは外しちゃいます。

f:id:ShunsukeKawai:20170515215944p:plain

インストールされたファイルは基本的には以下にあると思います。

C:\Program Files (x86)\MSBuild\Xamarin

実際に VisualStudio で使用している Xamarin.Android のフォルダーをリネーム(バックアップ)して先ほどのファイルを丸ごと持ってきます。

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin
f:id:ShunsukeKawai:20170515220606p:plain

以上で終了です。

Visual Studio を起動して出力の Xamarin Diagnostics に以下のように 7.2 だよー的なのが出ていれば成功です。
早くなりました。
f:id:ShunsukeKawai:20170515220830p:plain

Prism との組み合わせなのかなー。すぐ修正されるといいなぁ。

以下、みなさんのご協力



Daiki Kawanuma (@Santea3173) | Twitter
さんが
クワーティ (@qwerty2501) | Twitter
さんも悩んでいたことを教えてくれて



かむ (@muak_x) | Twitter
さんも参戦し


Mac 版はサクッと解決してくれたので

参考にして Windows も回避です。