1

Редактировать: На профиле альфа-канала 7, Profile49 и Profile78, похоже, работают. Я работаю с настройкой, описанной здесь: Getting PCL, Mvvmcross, Nuget and Xamarin Studio to play "nice" on Mac.Xamarin Studio Mac, портативная библиотека классов, Async и Android

Как сделать PCL в Xamarin Studio с поддержкой работы Async.

Я обычно с помощью Profile104 который TargetFrameworkVersion v4.0

Я попытался следующие комбинации с РЗЭ различного v4.5 профили Profile7, Profile49, Profile78 с различными версиями Xamarin студии:

       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 не найден. Unusable
  2. Профиль не найден: /Library/Frameworks/Mono.framework/Versions/3.2.1/lib/mono/xbuild/Microsoft/Portable/v4.5/Microsoft.Portable.CSharp.targets отсутствует

В принципе ни один из профилей 4,5 не работает ни в одной из доступных в настоящее время версий Xamarin Studio для Mac.

ответ

0

Редактировать: Эти инструкции относятся к Стабильному каналу. На канале Alpha вы можете использовать Profile 158, v4.0, который отлично работает с асинхронным режимом.

Следующая установка, похоже, работает с Android, не пробовал Touch.

  1. Установите PCL-Project 4,0 Профиль 104, в вашем csproj линии являются:

    <TargetFrameworkProfile>Profile104</TargetFrameworkProfile> 
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> 
    
  2. На вашем PCL-Project "Управление пакетами NuGet", поиск Async, Добавляем пакет с ID: Microsoft.Bcl.Async

  3. Ваш асинхронный код теперь должен компилироваться в PCL, однако проект Android будет жаловаться на отсутствующие DLL, и вы не сможете (или, возможно, не должны) добавить Async Targeting Упакуйте к нему.

  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> 
    

Вам может понадобиться перезапустить Xamarin Studio, на моей машине «Игнорировать сборки» не сразу работать на одном из дроидов тестовых проектов.

Ваш проект Android теперь должен строить и развертывать с поддержкой async в зависимости от PCL.

Смежные вопросы