読者です 読者をやめる 読者になる 読者になる

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

Visual Studio / Xamarin で PCL (Portable Class Library) プロジェクトに NuGet からライブラリを追加できない場合 (2014/12/22 原因判明)

Visual Studio Xamarin

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

2014/12/22 追記:NuGet のバージョンが低いとこのエラーが出ることが確定しました。原因が分かって良かったです。NuGet を単体アップデートまたは Visual Studio 2013 Update 4 にアップデートしましょう。

公式情報っぽいやつ: Xamarin | You are trying to install this package i...
というか、この kb.xamarin.com って Xamarin のサイトのどこからもリンクが張ってなくて、公式のはずなんですけど超謎ですねw

以上です。

条件が確定できていないのですが、エントリーとして残しておきます。 facebookjxug に投稿した 一連のやり取り の纏めです。

PCL (Portable Class Library) と Xamarin については 榎本さんBuildInsider 連載 をご覧頂くのが良いかと思います。

状況:PCL (Portable Class Library) プロジェクトに Json.NET がインストールできなかった

あめいさんの BuildInsider の記事 を見て、Json.NET を試してみようとやってみたところ以下の環境で以下のエラーが出て、PCL プロジェクトにインストールできませんでした。

環境

エラー

パッケージ 'Newtonsoft.Json 6.0.6' をインストールできませんでした。
'portable-net45+sl50+Xamarin.iOS10+MonoAndroid10+MonoTouch10' を対象とするプロジェクトにこのパッケージをインストールしようとしていますが、そのフレームワークと互換性があるアセンブリ参照またはコンテンツ ファイルがこのパッケージに含まれていません。
詳細については、パッケージの作成者に問い合わせてください。

PCL は Profile が色々ありますが、.NET 4.5 に対応した Profile 7, 49, 78, 111, 259 全部で試しましたがすべてでインストール出来ませんでした。

結果

私の環境では、Visual Studio 2013 Update 4 にしただけでこの問題が解決しました。

jxug のやり取りでは、2名の方が VS2013 Update 3 で問題なく追加出来たとのご報告がありましたので、私の Xamarin が Beta だからかもしれません。(Xamarin の環境による問題は、Windows, Visual Studio, Xamarin の組み合わせが多岐に渡るので原因の特定が難しいですが。)

なお、VS2012, VS2010 でも PCL が使えますが、それらの環境は調べていません。ただし、PCL の対象に Windows 8 ストアアプリがありますので、PCL を作成する際は Windows 8 以上、VS 2013 の最新の環境で開発するのがベターだと思います。

余談として、PCL の Profile についてはざっくり調べましたので こちらのエントリー をご覧ください。

以上です。