LoginSignup
12

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-05-31

前提

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

環境

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

解決策

時間がない人向け


問題

昨日 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

でその Xamarin.GooglePlayServices.Maps を使用する際には
Xamarin.GooglePlayServices.Base Basement が必要です。
スクリーンショット 2016-05-31 11.06.06.png

現状こんな感じ
X.Forms X.Forms.Map
v2.2.0.45
X.GPS.Basement Maps
v29.0.0.1

その後 GoogleAnalyticsをしようと思いパッケージを追加しようとするとこうなります。
スクリーンショット 2016-05-31 11.06.33.png

おや?
Dependencies
X.GPS.Basement(=29.0.0.2)

スクリーンショット 2016-05-31 11.07.20.png

Error /(^o^)\

 今までの解決策 非推奨

XSのNugetってバージョン指定 出来ないと思ってた
なので インストーラーを騙すために
packages.configのバージョンをいじってた。
スクリーンショット 2016-05-31 11.12.25.png

そうするとインストール出来る。
スクリーンショット 2016-05-31 11.13.23.png

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

違う問題で悩んでいたらお助言があった。

これからの解決策

SerachBarに Xamarin.GooglePlayServices.Analytics version:29.0.0.1
スクリーンショット 2016-05-31 11.18.15.png

出てきた!

結論

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

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

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

以上です。

おまけ

暴言失礼しました!

追記

未来のXamarinStudioではverisonが選べるようになる模様


スクリーンショット 2016-05-31 12.21.36.png
右下に欄が!!!
楽しみだな〜

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12