我正在为我的应用程序扩展支持的平台数量,它曾经支持 .NET4/Windows Store/Windows Phone,但我希望也涵盖适用于 Android 和 iOS 的 Mono。我已经将所有业务逻辑、模型和视图模型都放到了可移植类库 (PCL) 中,但是我应该针对哪些平台子集是一个很大的难题。每种组合都会导致某些事情失败。以下是我可能使用的 4 个平台的结果:
Profile 78 (NET45+WP8+Store):TPL、await/async 没有问题,并且支持 CallerMemberName 属性(用于 BindableBase 视图模型基类)。但是引用此类库的 Mono.Android 项目无法构建抱怨不存在的 System.Runtime.dll 应该被引用。
配置文件 104 (NET45+SL4+WP75+Store):等待/异步不起作用,未找到 CallerMember 名称,但如果我删除对它们的所有引用,Android 项目构建良好。
配置文件 147 (NET403+SL5+WP8+Store):等待/异步不起作用,未找到 CallerMember 名称,但如果我删除对它们的所有引用,Android 项目构建良好。
配置文件 158 (NET45+SL5+WP8+Store):等待/异步不起作用,未找到 CallerMember 名称,但如果我删除对它们的所有引用,Android 项目构建良好。
所以我不确定该选择什么。配置文件 78、104、147 是有限的,配置文件 78 是唯一同时支持等待/异步和 CallerMemberName 使用 BindableBase 的配置文件,但它在 Android 上失败并抱怨 System.Runtime.dll。因此,如果您对哪种 PCL 配置文件最适合针对 Mono 的 PCL 有经验,请分享您的想法。