11

アプリでサポートされるプラットフォームの数を増やすことに取り組んでいます.NET4/Windows Store/Windows Phone をサポートしていましたが、Android と iOS の Mono もカバーしたいと考えています。すべてのビジネス ロジック、モデル、およびビュー モデルをポータブル クラス ライブラリ (PCL) に配置しましたが、どのプラットフォームのサブセットをターゲットにするかは大きなジレンマです。組み合わせごとに何かが失敗します。以下は、私が使用する可能性のある 4 つのプラットフォームの結果です。

プロファイル 78 (NET45+WP8+Store): TPL、await/async に問題なし、CallerMemberName 属性のサポート (BindableBase ビュー モデルの基本クラスで使用)。しかし、そのようなライブラリを参照する Mono.Android プロジェクトは、参照されるべき System.Runtime.dll が存在しないというエラーを出してビルドに失敗します。

プロファイル 104 (NET45+SL4+WP75+Store): await/async が機能せず、CallerMember 名が見つかりませんが、それらへのすべての参照を削除すると、Android プロジェクトは正常にビルドされます。

プロファイル 147 (NET403+SL5+WP8+Store): await/async が機能せず、CallerMember 名が見つかりませんが、それらへのすべての参照を削除すると、Android プロジェクトは正常にビルドされます。

プロファイル 158 (NET45+SL5+WP8+Store): await/async が機能せず、CallerMember 名が見つかりませんが、それらへのすべての参照を削除すると、Android プロジェクトは正常にビルドされます。

だから、何を選べばいいのか本当にわからない。プロファイル 78、104、147 は制限されています。プロファイル 78 は、await/async と BindableBase を使用した CallerMemberName の両方をサポートする唯一のものですが、Android では System.Runtime.dll について不平を言って失敗します。したがって、Mono をターゲットとする PCL に最適な PCL プロファイルについての経験がある場合は、ご意見をお聞かせください。

4

1 に答える 1