Windows で Xamarin 開発をしたい方はインストールする前に読んでほしい

こんにちは。エクセルソフトの田淵です。

本エントリーは [こちら](http://ytabuchi.hatenablog.com/entry/2016/04/05/142525) の転載記事です。
こんにちは。エクセルソフトの田淵です。

Visual Studio 2017 がリリースされましたね！Visual Studio のインストール記事を書きました。

[Xamarin やりたい人向け Visual Studio 2017 インストール手引書 \- Xamarin 日本語情報](http://ytabuchi.hatenablog.com/entry/visualstudio2017)

[10分でわかる無料になったXamarin](https://www.slideshare.net/ytabuchi/10xamarin)


今は Visual Studio 2015 でもすごく良くなっていて、普通にインストールして普通にビルドすると、Android SDK は追加で入れないといけないかもですが、恐らくビルド通るはずです！

[【お知らせ】Xamarin 4\.2\.2\.11 で作成できる Xamarin\.Forms のテンプレートは不備がほぼ無くなっています \- Xamarin 日本語情報](http://ytabuchi.hatenablog.com/entry/2016/11/21/170000)




<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />

#### 一応記事を残しておきます。



### 見てらんない…

どうやら、ニュースを見て Xamarin を触ろうとしてくださっている方々が大変苦労されているようです。

> 2016/4/9<br />
ピックアップさせていただいた以下の 3名は皆さん問題が解決して快適な（？）Xamarin ライフを送ってくださっています！^^

**大量のエラー**


**Android アプリのデバッグ実行時の配置エラー**


### Xamarin ちゃんは本当は良い子なんです

良い子でいられるように、インストールしてデバッグ実行するまでに色々やらなければいけないことが隠されているだけなんです。環境構築で心折れて触れないなんて悲しすぎるので、デバッグ実行するまでのフローを用意しました。ぜひ活用してください。全部ちゃんと直ります。

#### 大前提

Xamarin って何？という方は以下をご覧ください。


- UWP 開発をする場合、Windows 10 がほぼ必須です。（Windows 10 Mobileをエミュレーターで開発する方は Hyper-V が必要なので、Windows 10 Pro 以上が必要です）
- Windows Store/Windows Phone 8.1 開発をする場合、Windows 8.1 以上がほぼ必須です。
- 日本語のユーザー名では正しく動作しないことがあります。英語のユーザー名でログインしましょう。
    - 「"ConvertResourcesCases"タスクが予期せずに失敗しました」というエラーが出るようです。
- Android の実機をなるべく用意しましょう。
- Visual Studio で iOS プロジェクトをビルドするには、Mac に **Xamarin Studio をインストールして**、Mac に Remote Agent で接続する必要があります。

Windows 10 の英語のユーザー名でログインするのが幸せになれる近道です^^

#### Windows の HDD/SSD に十分な空き容量はありますか？

Xamarin で**全部入り**の Visual Studio 2015 Community をインストールしようとすると、45GB の容量が必要になります。ない方は事前に容量を開けていただくか、ご自身で使用する機能に絞ってインストールすることで、容量を節約できます。

> エミュレーターはインストールしなくても問題ありません。

##### インストーラーの内訳と各項目の大体の容量

まず、UWP 開発、Windows Store 開発をやらない方は以下は不要ですので、26GB 減りますｗ

- ユニバーサル Windows アプリ開発ツール：**全部で 15GB**
    - Tools (1.3) と Windows 10 SDK (10.0.10586) **8GB**
    - Windows 10 Mobile 用エミュレーター (10.0.10586) **4GB**
    - Windows 10 SDK (10.0.240) **2GB**
- Windows 8.1 および Windows Phone 8.0/8.1 ツール **全部で 11GB**
    - ツールと Windows SDK **7GB**
    - Windows Phone 8.1 のエミュレーター **4GB**

Xamarin にチェックを入れると、上記［Windows 8.1 のツールと SDK］と以下が追加されます。［Windows 8.1 のツールと SDK］のチェックを外すと［！］で注意が表示されますが、Windows Phone 8.1 をやらない方は無視して大丈夫です。

- C#/.NET (Xamarin) **10GB**
- Android 用 Microsoft Visual Studio エミュレーター (2016年1月) **1GB**
- 共通ツールおよびソフトウェア開発キット
    - Android ネイティブ開発キット (R10E、32ビット) **3GB**
    - Android SDK **1GB 未満**
    - Android SDK セットアップ (API レベル 19および21) **5GB**
    - Java SE 開発キット (7.0.550.13) **1GB**

このうち、Android の実機を持っている方は［Android 用 Microsoft Visual Studio エミュレーター］は外してもかまいません。他は必須です。また、以下の 2つはチェック追加した方が良いです。

- Android SDK セットアップ (API レベル 22) **1GB未満**
- Android SDK セットアップ (API レベル 23) **1GB未満**


結果、一番最小の構成で 24GB が必要になります。プロジェクトのサイズなども考えると、やはり 30GB ほどは欲しいですね。

J2SDK、Android SDK などをすでにインストールされている方は、Visual Studio のメニューから［ツール＞オプション］で表示される［オプション］ダイアログの［Xamarin＞Android Settings］で PATH を指定できますので、Xamarin をインストールしないで、後で Xamarin だけ個別にインストールしましょう。

なお、［Windows Phone 8.1 のエミュレーター］、［Windows 10 Mobile 用エミュレーター］、［Android 用 Microsoft Visual Studio エミュレーター］をインストールする方は、Hyper-V がオンになっている必要がありますので、事前に［プログラムと機能＞Windows の機能の有効かまたは無効化］から、［Hyper-V］をインストールしておきましょう。（その後再起動が必要です。）

> Hyper-V を使用する Visual Studio のエミュレーターは私はお勧めしません。Android は Android SDK 純正の x86 Emulator がかなり高性能です。

#### 既存の Visual Studio ユーザー

Visual Studio 2015 をすでにインストールされている方は、Update 2 のインストーラーを実行すると、［変更］が出来るようですので、上記のうち、必要な項目を追加インストールしてください。

なお、この際にすでに以前から Xamarin をインストールしていた方は最初に Xamarin をアンインストールするとよさそうです。

### 起動してみよう！

さあ、無事にインストールが終了したら、Visual Studio を起動しましょう。

#### Android プロジェクトの作成とビルド

まずは Android でしょうか。起動画面の［新しいプロジェクト］で表示される［新しいプロジェクト］ダイアログで［Visual C#＞Android＞Blank App (Android)］を作成します。

そのままビルドしてみましょう。

OKっぽい！

なお、Android のデバッグで ARM のエミュレーター「AVD_ApacheCordova～」などを使用している場合は起動にめっちゃ時間が掛かりますので、起動を待っている間に配置エラーが表示されます。一度デバッグ実行を停止し、エミュレーターが起動して操作できるようになるまでのんびり待ち、その後、再度デバッグ実行してください。

実機で配置エラーが表示される場合は、根が深い可能性があります。。

少し古いエントリーですが、Android の Emulator については以下をご覧ください。


Xamarin Android Player を使う場合は以下をご覧ください。



#### iOS プロジェクトの作成とビルド

iOS プロジェクトのビルドは Mac が必要になります。また、Mac 側でもプロビジョニングなどの設定が必要になります。詳細は別のエントリーで紹介するとして、緑のマシンアイコンになってれば OK です。

［新しいプロジェクト］ダイアログで［Visual C#＞iOS＞Universal＞Single View App (iOS)］を作成します。

そのまま Mac にリモート接続してビルドしてみます。

デバッグできてる！（iOS Simulator は少し遠くの Mac Mini のディスプレイに表示されていますね…ｗ）

#### Xamarin.Forms プロジェクトの作成とビルド

たぶん、ここが鬼門なんですよね。Xamarin.Forms は、共通ライブラリプロジェクトと、各プラットフォームがセットになったソリューションです。Xamarin.Forms のソリューションには、PCL（共通ライブラリ）、Android、iOS、UWP、Windows 8.1（ストアアプリ）、Windows Phone 8.1 が含まれます。ここで、先ほど UWP や 8.1 SDK をインストールしていない方は、［プロジェクトが作成できない］というようなエラーが出ますので、無視してください。（どうしても気になる方は、独自プロジェクトテンプレートを作成してしまいましょう）


こちらのプロジェクトテンプレートを使えばエラーはほぼ出ないです！凄い！（いや、、Xamarin.Forms のテンプレートがあまりにしょぼいのかｗ）

新規プロジェクトで［Visual C#＞Cross-Platform＞Xamarin.Forms App (Portable)］で Xamarin.Forms プロジェクトを作成します。

プロジェクトの作成が終わると、早速大量のエラーが出ます。（157個以上出てる場合は別の原因です。）


**安心してください。いつものことです。。** ［エラー一覧］ウィンドウの［プロジェクト］列を追っていくと、すべて UWP であることが分かります。Xamarin.Forms の UWP プロジェクトは何故か `Microsoft.NETCore.UniversalWindowsPlatform` と `Xamarin.Forms` がありません。左がなしで右がありです。


これを解消するには、

1. ソリューションを右クリックして、［NuGet のパッケージの復元］をクリック  
1. PCL プロジェクトを［リビルド］  
1. UWP プロジェクトを［リビルド］または［クリーン］  

で、大体なくなるはずです。


ワーニングはとりあえず無視して、Android プロジェクトをビルドしてみましょう。

##### Android

Android プロジェクトを右クリックして、［スタートアッププロジェクトに設定］をクリックして、デバッグ実行してみます。

ここで、以下のような「No Resource found」系のエラーが出る場合は、

Visual Studio のメニューから［ツール＞Xamarin＞Android SDK Manager］を UAC で起動して、

Android SDK 6.0 と Android SDK 5.1 をインストールしてください。（標準で 4.4 と 5.0 はインストールされているはずですが、インストールしていなければインストールしてください。）

インストール後、再度デバッグ実行するのですが、Android だけでなく、何かのプロジェクトでエラーが出て色々やってリビルドするときには、Windows エクスプローラーで、対象プロジェクトフォルダの bin, obj の 2つのフォルダを削除するようにしてください。

はい。無事ビルドできました。

#### iOS

Xamarin ネイティブ（単体のプロジェクト）でビルドできれば Xamarin.Forms でも問題ないはずです。

#### UWP

ついでに UWP も書いておきます。何故か、Visual Studio のメニューから［ビルド＞構成マネージャー］の［ビルド］と［配置］のチェックが外れているので、チェックしてあげます。その後、［ローカルコンピューター］でデバッグ実行してみます。ローカルコンピューターでデバッグ実行するには、Windows 10 のスタートボタンから［設定＞更新とセキュリティ＞開発者向け］で［開発者モード］に設定します。


はい。こちらも無事ビルドできました。

！！！！！ってか、上のボタンなに！！［ライブビジュアルツリー］って何！！！！Update 1 まではありませんでしたねー。気になりますｗ

### いかがでしょうか

ちょっとした手間を加えてあげるだけで「簡単に」iOS/Android/UWP アプリがビルドできますよ！！！（書いていて悲しくなるので、早くプロジェクトテンプレートを丁寧に作り直してほしいですね…）

ビルドするまで同じエラーは出ますが、私が色々設定したプロジェクトテンプレートも用意してありますので、よろしければ以下もご利用ください。

開発時の様々なバッドノウハウ（まだあるのかよ！とか言わないでｗ）は以下をご参照ください。

[@nuits_jp](https://twitter.com/nuits_jp) さんもトラブル Q&A エントリーを書いてくださっているので、併せて参考にしてください。




### Xamarin 気になった方は

是非 <a href="http://xamarin.com/download/" onClick="_gaq.push(['_trackEvent', 'Clicks', 'Download', 'Xamarin']);">ダウンロード</a> して触ってみてください。
<a href="http://ytabuchi.hatenablog.com/entry/2014/08/26/191759" onClick="_gaq.push(['_trackEvent', 'Clicks', 'Link', 'StudyResources']);">学習用リソース</a> や <a href="http://jxug.org/links.html" onClick="_gaq.push(['_trackEvent', 'Clicks', 'Link', 'JXUG']);">JXUG リンクページ</a> に参考資料を纏めてますので併せてどうぞ。

Xamarin の情報が欲しい方は<a href="http://blog.hatena.ne.jp/ytabuchi/ytabuchi.hatenablog.com/subscribe"  onClick="_gaq.push(['_trackEvent', 'Clicks', 'Subscribe', 'Blog']);">このブログも購読</a>いただいたり、私の<a href="https://twitter.com/ytabuchi" onClick="_gaq.push(['_trackEvent', 'Clicks', 'Subscribe', 'Twitter']);">Twitterアカウントをフォロー</a>いただいたりすると嬉しいです。

私が所属している [エクセルソフト](http://www.xlsoft.com/jp/index.html) は、開発者向けの様々なソフトウェアを扱っています。 [ReSharper (JetBrains)](http://www.xlsoft.com/jp/products/jetbrains/index.html)、 [JIRA, Confluence (Atlassian)](http://www.xlsoft.com/jp/products/atlassian/index.html)、[Aspose（Office/PDF ファイルを .NET/Java で操作するライブラリ）](http://www.xlsoft.com/jp/products/aspose/index.html)、[TestComplete (SmartBear)](http://www.xlsoft.com/jp/products/smartbear/index.html) などお勧めです^^

以上です。