XamarinでNugetする際の依存関係の問題と解決法

# 前提
この記事は以下の前提がありまーす。

## 環境

+ _OS X El Capitan 10.11.5_
+ _Xamarin Studio Version 5.10.3 (build 26)_
+ _Xamarin.iOS Version: 9.6.2.4 (Xamarin Business)_
+ _Xamarin.Android Version: 6.0.6.0 (Xamarin Business)_

## 備考
一応　Xamarin Studio前提のお話、でもパッケージの依存関係の話でもあるので
VisualStudioでも気にしたほうがいいかも。

JXUGの中でもちょいちょい話題になっていて、皆さんの解決策が違うと思う。
なので今まで自分がやったことを備忘録のつもりです。

# 解決策
時間がない人向け
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/AyaseSH">@AyaseSH</a> <a href="https://twitter.com/ticktackmobile">@ticktackmobile</a> <a href="https://twitter.com/yu_ka1984">@yu_ka1984</a> <a href="https://t.co/KNi9SKCoio">https://t.co/KNi9SKCoio</a> の6ページにある感じで、 version:x.y.z を検索ワードに追加すれば見つかりますよ</p>&mdash; Atsushi Eno (@atsushieno) <a href="https://twitter.com/atsushieno/status/737213267991355393">2016年5月30日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

# 問題
昨日 2016/5/30 の _Xamarin.Forms.Map v2.2.0.43_ 問題の話じゃないです。（でも関係なくはないよ
毎回Formsをバージョンアップすると出てくる問題です。依存が多いのでよく起きますね。

## 例
_Xamarin.Forms.Map_ を使用する際に _Android_ では依存関係で
_Xamarin.GooglePlayServices.Maps_ が必要になります。
![スクリーンショット 2016-05-31 11.05.28.png](https://qiita-image-store.s3.amazonaws.com/0/64093/7de80507-6587-26ef-5975-321846d17ad2.png)

でその _Xamarin.GooglePlayServices.Maps_ を使用する際には
_Xamarin.GooglePlayServices.Base Basement_ が必要です。
![スクリーンショット 2016-05-31 11.06.06.png](https://qiita-image-store.s3.amazonaws.com/0/64093/0a2715b0-6105-3ad2-bda2-e9cfbb07c1ed.png)


<dl>現状こんな感じ
<dt>X.Forms X.Forms.Map</dt><dd>v2.2.0.45</dd>
<dt>X.GPS.Basement Maps</dt><dd>v29.0.0.1</dd>
</dl>

その後 GoogleAnalyticsをしようと思いパッケージを追加しようとするとこうなります。
![スクリーンショット 2016-05-31 11.06.33.png](https://qiita-image-store.s3.amazonaws.com/0/64093/a5c3008d-8334-1861-ddb8-97382802f3bb.png)

<dl>おや？
<dt>Dependencies</dt><dd>X.GPS.Basement(=29.0.0.2)</dd>
</dl>
![スクリーンショット 2016-05-31 11.07.20.png](https://qiita-image-store.s3.amazonaws.com/0/64093/42b6f403-1474-a7ff-fae1-d6415b6a9f36.png)

**Error** ／(^o^)＼

##　今までの解決策　**非推奨**
XSのNugetってバージョン指定 **出来ないと思ってた** 
なので インストーラーを騙すために 
packages.configのバージョンをいじってた。
![スクリーンショット 2016-05-31 11.12.25.png](https://qiita-image-store.s3.amazonaws.com/0/64093/7fdce798-9ff9-9f86-d57a-c7e9665c5c4b.png)


そうするとインストール出来る。
![スクリーンショット 2016-05-31 11.13.23.png](https://qiita-image-store.s3.amazonaws.com/0/64093/dd85ef7e-c336-317e-4ad9-8e7d4ee7fb43.png)

で　その後バージョンナンバーを戻してた。
まあこれでも良かったけど（本当は良くない）

違う問題で悩んでいたらお助言があった。
## これからの解決策
SerachBarに `Xamarin.GooglePlayServices.Analytics version:29.0.0.1`
![スクリーンショット 2016-05-31 11.18.15.png](https://qiita-image-store.s3.amazonaws.com/0/64093/e6fede61-9c77-5c90-fec3-3d17e317cc49.png)

出てきた！

# 結論
今回の解決策は
依存関係にちゃんと対応されたパッケージがある場合です。（隠れ前提）
VisualStudioに出来て、（コンソールでインストールできるからコピペで楽）
XamarinStudioに出来ないと思ってたことだったのですっきりしました。

しかし これでも解決出来ない場合も多々…
例えば他に使いたいパッケージがv29以前のバージョンのみ対応とか

そういう時は　非推奨の方法で追加するのも手だと思っています。
ただし　使用上の注意をよく読み、用法・用量を守って正しくお使い下さい。

以上です。

# おまけ
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ざまりんのことは嫌いになってもわたしのことは嫌いにならないで下さい <a href="https://t.co/lzNv7xiALg">https://t.co/lzNv7xiALg</a></p>&mdash; Atsushi Eno (@atsushieno) <a href="https://twitter.com/atsushieno/status/737216654862487554">2016年5月30日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

暴言失礼しました！

# 追記
未来のXamarinStudioではverisonが選べるようになる模様
<blockquote class="twitter-tweet" data-conversation="none" data-lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/AyaseSH">@AyaseSH</a> しばらく前に話題になった時に報告して選べるようにしてもらったんですけど、stableでは無理かもしれませんね</p>&mdash; Atsushi Eno (@atsushieno) <a href="https://twitter.com/atsushieno/status/737176778528018432">2016年5月30日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet" data-conversation="none" data-lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/ticktackmobile">@ticktackmobile</a> <a href="https://twitter.com/atsushieno">@atsushieno</a> <a href="https://twitter.com/AyaseSH">@AyaseSH</a> Alphaだと選択できるので次までの辛抱です！</p>&mdash; 田淵 義人＠エクセルソフト (@ytabuchi) <a href="https://twitter.com/ytabuchi/status/737481673747484672">2016年5月31日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

<img width="809" alt="スクリーンショット 2016-05-31 12.21.36.png" src="https://qiita-image-store.s3.amazonaws.com/0/64093/06548af6-49d2-335a-176f-d98540bce3de.png">
右下に欄が！！！
楽しみだな〜