みなさんが気になっているであろう、Xamarin.Formsに.NET Standardをどうやって適用すればよいか問題を解決する記事を見つけたので、実際に私が試してみました!.NET Standardとは何か?という事も踏まえつつ.NET Standardを適用させてみたいと思います。

Xamarin.Formsに.NET Standardを適用させてみる

かりまたかりまた

堅苦しい説明の前に、とりあえず.NET Standardを適用させてみましょう!

かりまたかりまた

以下の記事を参考に、というかまんま流れに沿っただけですがw素晴らしい。ありがとうございます。

自力でフレームワークを変えようとした場合にこうなる

かりまたかりまた

これが

かりまたかりまた

こうなるじゃろ

かりまたかりまた

\(^o^)/ うまいやり方があるんでしょうか?知っていれば教えてください。

通常のXamarinプロジェクトにCoreTweetの最新版を入れようとした場合

かりまたかりまた

何が  “通常” なのかと問われれば難しい問題ですが、ここではProfile259に設定してあるプロジェクトを通常のプロジェクトとして定義します。

かりまたかりまた

結論から言うと、CoreTweetの最新版をインストールしようとすると、以下のようなメッセージが表示されます。

パッケージ ‘CoreTweet 0.8.0.384’ をインストールできませんでした。このパッケージを ‘.NETPortable,Version=v4.5,Profile=Profile259’ を対象とするプロジェクトにインストールしようとしていますが、そのフレームワークと互換性があるアセンブリ参照またはコンテンツ ファイルがパッケージに含まれていません。

なんでProfile259だとインストールできないのライブラリがあるの?

かりまたかりまた

ここら辺の知識、全くないので完全な推論になるんですが、Profile259の対象になっているプラットフォームの中でインストールしようとしているライブラリに非対応のプラットフォームがあるのではと考えています。

 

かりまたかりまた

上記のページではProfileについてまとめられていますが、数字が大きくなればなる程対応するプラットフォームが多くなっています。ですのでその分、制約が増しているのでは?というのが私の考えなのですが誰かつよいひと教えてください。

.NET Standardについて

.NET Standardとは?

かりまたかりまた

まぁ正直、今更わたしが説明する程の事でもないのかなと思っています。以下のページを読めば概要は掴めます。

.NET Standardの概要

かりまたかりまた

他記事に投げっぱなしは流石に良くないと思ったので簡単に補足します。.NET Standardの立ち位置は以下の通りです。

かりまたかりまた

この通り、.NET Framework.NET Coreの更に基盤的な立ち位置にあります。

かりまたかりまた

昨今、Visual Studio for Macがリリースされた事は記憶に新しいですよね。XCodeOSX上でしか動作しないのに対して、Visual Studio.NET Framework上でしか動かないアプリケーションでした。

かりまたかりまた

しかしこうした、OSに依存しない基盤部分を作成することで今までWindowsでしか動かなかったアプリケーションがどこでも動作するようになる可能性が出てきたという訳ですね。

Download

かりまたかりまた

.NET Standardを適用させたプロジェクトをアップロードしておきました。最新バージョンのPrism (Unity)ReactivePropertyをインストールしています。ご自由にお使いください。

まとめ

  • csprojを直接弄れば .NET Standardを適用させることができる
  • NuGetも使える!
  • .NET Standardを適用すればProfile259地獄から解放される