Xamarin Studio Mac,便携式类库,Async和Android

时间:2013-09-13 14:08:40

标签: asynchronous xamarin.android portable-class-library xamarin-studio

编辑:在Alpha通道Profile7上,Profile49和Profile78似乎有效。 我正在使用此处描述的设置: Getting PCL, Mvvmcross, Nuget and Xamarin Studio to play "nice" on Mac

如何在Xamarin Studio中使用Async支持工作制作PCL。

我通常使用的是Profile104,它是TargetFrameworkVersion v4.0

我尝试了以下hree不同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
  1. 未找到System.Type,System.Threading。不可用
  2. 未找到个人资料:/ Library/Frameworks/Mono.framework/Versions/3.2.1/lib/mono/xbuild/Microsoft/Portable/v4.5/Microsoft.Portable.CSharp.targets缺失
  3. 基本上,4.5个配置文件都不适用于任何当前可用的Mac版Xamarin Studio版本。

1 个答案:

答案 0 :(得分:0)

修改:这些说明适用于稳定频道。在Alpha通道上,您可以使用Profile 158,v4.0,它可以与异步一起使用。

以下设置似乎适用于Android,尚未尝试使用Touch。

  1. 将您的PCL-Project设置为4.0 Profile 104,在您的csproj中行为:

    <TargetFrameworkProfile>Profile104</TargetFrameworkProfile>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    
  2. 在您的PCL-Project上,“管理Nuget包”,搜索Async,添加包含ID的包:Microsoft.Bcl.Async

  3. 您的异步代码现在应该在PCL中编译,但Android项目会抱怨缺少dll而您不能(或可能不应该)向其添加Async Targeting Pack。

    < / LI>
  4. 在链接器选项卡上的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>
    
  5. 您可能需要重新启动Xamarin Studio,在我的计算机上,“忽略程序集”在其中一个Droid测试项目中无法立即生效。

    您的Android项目现在应该在PCL依赖项中使用异步支持进行构建和部署。