2016-05-03 11 views
9

iOSとAndroidのみを対象とするXamarinでライブラリを作成する必要があります。他のプラットフォームをサポートする必要はありませんが、できるだけ多くの.NET機能が必要です。iOSとAndroidをXamarin PCLでターゲット設定し、.NETの機能が増えることはありますか?

私は変更にダイアログをターゲットのSilverlightチェックボックスをオフにする方法がないことがわかり

enter image description here

は、私が唯一のSilverlightサポートなしのiOSとAndroidを対象とXamarinポータブルクラスライブラリを作成して持つことができますより多くの.NET機能がサポートされますか?

EDIT:私がサポートする必要があるクラスは、X509CertificateCollection、SerializationInfo、NameValueCollectionです。また、System.Web.Services名前空間のサポートも必要です。 iOSやAndroidプロジェクトでこれらのすべてを直接使用できるようです。これらの機能をすべて備えたPCLを作成できますか? Silverlightを含ん

答えて

6

限られたあなたはPCLをターゲットにしようとした場合、別のオプションは、次のようにセットアップになりおとり商法NuGet、使用することです:

  • 共有プロジェクト - 参考文献 - すべての共有コード
  • のAndroidライブラリプロジェクトが含まれています共有プロジェクト、すべてのコードを取得する
  • iOSライブラリプロジェクト - 参考共有プロジェクトすべてのコード
  • PCLプロジェクトを取得 - 空のプロジェクト、メソッドだけ

その後、あなたはAndroidのペイロードは、AndroidライブラリプロジェクトであるNuGetを作成するための空のスタブが含まれている、とiOSのペイロードは、iOSです図書館プロジェクト

PCLプロジェクトは、PCLと互換性のあるAPIのみを処理しますが、実装では必要なものすべてが使用されます。おとり商法のアプローチについては

は、以下を参照してください。http://log.paulbetts.org/the-bait-and-switch-pcl-trick/

7

Profile24は、しばらくの間を得ようとしている狭いがFYI Xamarin.iOSXamarin.Android

が含まれます:あなたはPCLライブラリ方向を行っている場合、私は完全にProfile111を使用してのマットの提案に同意します。時には私たちのプロジェクトでは、 "共有プロジェクト"だけで、必要なときに#if /#else /#endを共有コードで使うのは "速い"($ /時間)です。 PCLライブラリは共有には最適ですが、フレームワークを残す心配は必要なければ、今日の問題を今日の問題解決につなげることができます...-)

Xamarin 4.1リリースでは、追加:

Profile 44 (.NET Framework 4.5.1, Windows 8.1) (netstandard 1.2) 
Profile 151 (.NET Framework 4.5.1, Windows 8.1, Windows Phone 8.1) (netstandard 1.2) 

古い:

Profile 5 (.NET Framework 4,  Windows 8) 
Profile 6 (.NET Framework 4.0.3, Windows 8) 
Profile 7 (.NET Framework 4.5, Windows 8) 
Profile 14 (.NET Framework 4,  Silverlight 5) 
Profile 19 (.NET Framework 4.0.3, Silverlight 5) 
Profile 24 (.NET Framework 4.5, Silverlight 5) 
Profile 37 (.NET Framework 4,  Silverlight 5, Windows 8) 
Profile 42 (.NET Framework 4.0.3, Silverlight 5, Windows 8) 
Profile 47 (.NET Framework 4.5, Silverlight 5, Windows 8) 
Profile 49 (.NET Framework 4.5, Windows Phone Silverlight 8) 
Profile 78 (.NET Framework 4.5, Windows 8, Windows Phone Silverlight 8) 
Profile 92 (.NET Framework 4,  Windows 8, Windows Phone 8.1) 
Profile 102 (.NET Framework 4.0.3, Windows 8, Windows Phone 8.1) 
Profile 111 (.NET Framework 4.5, Windows 8, Windows Phone 8.1) 
Profile 136 (.NET Framework 4,  Silverlight 5, Windows 8, Windows Phone Silverlight 8) 
Profile 147 (.NET Framework 4.0.3, Silverlight 5, Windows 8, Windows Phone Silverlight 8) 
Profile 158 (.NET Framework 4.5, Silverlight 5, Windows 8, Windows Phone Silverlight 8) 
Profile 225 (.NET Framework 4,  Silverlight 5, Windows 8, Windows Phone 8.1) 
Profile 255 (.NET Framework 4.5, Silverlight 5, Windows 8, Windows Phone 8.1) 
Profile 259 (.NET Framework 4.5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8) 
Profile 328 (.NET Framework 4,  Silverlight 5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8) 
Profile 336 (.NET Framework 4.0.3, Silverlight 5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8) 
Profile 344 (.NET Framework 4.5, Silverlight 5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8) 

http://danrigby.com/2014/05/14/supported-pcl-profiles-xamarin-for-visual-studio-2/

+1

私は私のプロジェクトでProfile111を参照するにはどうすればよいですか?私はプロジェクトファイルで手動で設定しようとしましたが、VSはインストールされていないと言いました。 –

+0

マイクロソフトでは、参照アセンブリをまだインストールしていない場合は、参照アセンブリを含めるために別個にダウンロードしています。@ http://www.microsoft.com/en-us/download/details.aspx?id=40727 – SushiHangover

2

PCLプロファイルはSilverlを含むかどうか、(ほぼ)同じですあなたはPCLアセンブリにのみアクセスできます。

しかし、Xamarinフォームでは、.Droidプロジェクトと.iOSプロジェクトを持つ各プラットフォーム上で既に対処することができます。これらのプロジェクトでは、完全な.netフレームワークを使用できます。

これらのプロジェクトのコードにアクセスするにはDependency Servicesがあり、AndroidとiOSの両方に同じコードを使用する場合はshared projectsです。

基本的に、共有されたすべてのプロジェクトを共有プロジェクトに入れ、インターフェイスを実装し、それを依存サービスとして登録し、Formsコードで取得します。この方法で完全なフレームワークをサポートします。

+0

PCLのX509CertificateCollection、SerializationInfo、NameValueCollectionクラスをDependencyServicesなしで直接使用できますか? –

+0

いいえ.... .... ... – Gusman

1

テキストには、機能が低下しないため、自動的に銀色が追加されます。したがって、利用可能な機能はもうなくなります。

反対側では、Profile111(SushiHangoverの答えのリストを参照)を使用することを提案します。一方で、これは後でWindows 10をターゲットプラットフォームとして追加することができ、Silverlightが死ぬ(Silverlight 5が最後、Windows PhoneがUWP)ので、ほとんどのPCLがこのプロファイルをサポートしているようです。

+0

Profile111はSystem.Web.Services名前空間をサポートしていますか? –

+0

残念ながら、あなたはそれを必要としていますか? – Matt

関連する問題