Edit:在 Alpha 通道上,Profile7、Profile49 和 Profile78 似乎都可以工作。
我正在使用此处描述的设置:让 PCL、Mvvmcross、Nuget 和 Xamarin Studio 在 Mac 上“顺利”运行 .
如何在具有异步支持的 Xamarin Studio 中制作 PCL。
我通常使用 Profile104,即 TargetFrameworkVersion v4.0
我尝试了以下三种不同 v4.5 配置文件的组合
Profile7、Profile49、Profile78 与不同版本的 Xamarin Studio:
Profile7 Profile 49 Profile 78
Alpha (4.1.10, mono=3.2.2) 1 1 1
Beta (4.0.12, mono=3.2.1) 2 2 2
Stable (4.0.12, mono=3.2.0) 1 1 1
- 未找到 System.Type、System.Threading。无法使用
- 找不到配置文件:/Library/Frameworks/Mono.framework/Versions/3.2.1/lib/mono/xbuild/Microsoft/Portable/v4.5/Microsoft.Portable.CSharp.targets 丢失
基本上,4.5 配置文件都无法在任何当前可用的 Mac 版 Xamarin Studio 中运行。
Edit:这些说明适用于稳定通道。在 Alpha 通道上,您可以使用 Profile 158 v4.0,它可以与异步配合良好。
以下设置似乎适用于 Android,尚未尝试过 Touch。
-
将您的 PCL-Project 设置为 4.0 Profile 104,在您的 csproj 中,这些行是:
<TargetFrameworkProfile>Profile104</TargetFrameworkProfile>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
在您的 PCL 项目上,“管理 Nuget 包”,搜索 Async,添加 ID 为 Microsoft.Bcl.Async 的包
您的异步代码现在应该在 PCL 中编译,但是 Android 项目会抱怨缺少 dll,并且您不能(或者也许不应该)向其中添加异步目标包。
-
在 Android 项目的“选项”、“构建/Android 构建”的“链接器”选项卡上,将以下内容添加到“忽略程序集”:System.Threading.Tasks.dll;Microsoft.Threading.Tasks.dll;Microsoft.Threading.Tasks.Extensions.dll
。我的 csproj 包含以下行:
<AndroidLinkSkip>System.Threading.Tasks.dll;Microsoft.Threading.Tasks.dll;Microsoft.Threading.Tasks.Extensions.dll</AndroidLinkSkip>
您可能需要重新启动 Xamarin Studio,在我的计算机上,“忽略程序集”无法立即在 Droid 测试项目之一上运行。
您的 Android 项目现在应该在 PCL 依赖项中构建和部署异步支持。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)