前提
この記事は以下の前提がありまーす。
環境
- 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の中でもちょいちょい話題になっていて、皆さんの解決策が違うと思う。
なので今まで自分がやったことを備忘録のつもりです。
解決策
時間がない人向け
@AyaseSH @ticktackmobile @yu_ka1984 https://t.co/KNi9SKCoio の6ページにある感じで、 version:x.y.z を検索ワードに追加すれば見つかりますよ
— Atsushi Eno (@atsushieno) 2016年5月30日
問題
昨日 2016/5/30 の Xamarin.Forms.Map v2.2.0.43 問題の話じゃないです。(でも関係なくはないよ
毎回Formsをバージョンアップすると出てくる問題です。依存が多いのでよく起きますね。
例
Xamarin.Forms.Map を使用する際に Android では依存関係で
Xamarin.GooglePlayServices.Maps が必要になります。
でその Xamarin.GooglePlayServices.Maps を使用する際には
Xamarin.GooglePlayServices.Base Basement が必要です。
- 現状こんな感じ
- X.Forms X.Forms.Map
- v2.2.0.45
- X.GPS.Basement Maps
- v29.0.0.1
その後 GoogleAnalyticsをしようと思いパッケージを追加しようとするとこうなります。
- おや?
- Dependencies
- X.GPS.Basement(=29.0.0.2)
Error /(^o^)\
今までの解決策 非推奨
XSのNugetってバージョン指定 出来ないと思ってた
なので インストーラーを騙すために
packages.configのバージョンをいじってた。
で その後バージョンナンバーを戻してた。
まあこれでも良かったけど(本当は良くない)
違う問題で悩んでいたらお助言があった。
これからの解決策
SerachBarに Xamarin.GooglePlayServices.Analytics version:29.0.0.1
出てきた!
結論
今回の解決策は
依存関係にちゃんと対応されたパッケージがある場合です。(隠れ前提)
VisualStudioに出来て、(コンソールでインストールできるからコピペで楽)
XamarinStudioに出来ないと思ってたことだったのですっきりしました。
しかし これでも解決出来ない場合も多々…
例えば他に使いたいパッケージがv29以前のバージョンのみ対応とか
そういう時は 非推奨の方法で追加するのも手だと思っています。
ただし 使用上の注意をよく読み、用法・用量を守って正しくお使い下さい。
以上です。
おまけ
ざまりんのことは嫌いになってもわたしのことは嫌いにならないで下さい https://t.co/lzNv7xiALg
— Atsushi Eno (@atsushieno) 2016年5月30日
暴言失礼しました!
追記
未来のXamarinStudioではverisonが選べるようになる模様
@AyaseSH しばらく前に話題になった時に報告して選べるようにしてもらったんですけど、stableでは無理かもしれませんね
— Atsushi Eno (@atsushieno) 2016年5月30日
@ticktackmobile @atsushieno @AyaseSH Alphaだと選択できるので次までの辛抱です!
— 田淵 義人@エクセルソフト (@ytabuchi) 2016年5月31日