Как я должен использовать Azure Mobile Services с PCL или без него сейчас?
Я обновил до последней версии Xamarin, где PCL "полностью поддерживается".
Как я могу использовать Azure Mobile Services сейчас?
если я создаю PCL lib и пытаюсь добавить его с NuGet, ему не удалось установить "Newtonsoft.Json 5.0.8", потому что ему не нужен "portable-net45 + wp80 + MonoAndroid10 + MonoTouch10".
если я создаю простой андроид lib и добавляю Azure из компонентов, которые он генерирует excepton:
System.InvalidOperationException: службы Windows Azure для мобильных устройств сборка для текущей платформы не найдена. Убедитесь, что кур...
on
public static MobileServiceClient MobileService = new MobileServiceClient(
"https://no-link-here.azure-mobile.net/",
"no-key-here");
Ответы
Ответ 1
Во-первых, убедитесь, что используете версию 1.1.5 или выше либо NuGet, либо компонент Xamarin, поскольку предыдущие версии имели некоторые проблемы с поддержкой PCL.
Для пошагового руководства по использованию мобильных служб в PCL см. этот учебник.
Если вы установите компонент Xamarin или пакет NuGet для Azure Mobile Services в ваше приложение для Android, вы найдете, что он добавляет эти ссылки (среди прочих):
- Microsoft.WindowsAzure.Mobile.dll
- Microsoft.WindowsAzure.Mobile.Ext.dll
Первая сборка - это PCL, вторая сборка имеет специфичную для платформы реализацию (и это то, что вам не хватает с сообщением об ошибке выше).
Пакет NuGet для мобильных служб имеет определенные целевые платформы для Xamarin.iOS и Xamarin.Android, поэтому, если вы используете Visual Studio, у вас есть возможность использовать только NuGet и полностью пропустить компонент Xamarin.
Из-за некоторых ошибок в том, как пакеты BCL NuGet (HttpClient, Bcl.Build и т.д.) взаимодействуют с Xamarin, есть несколько обходных решений, о которых вам нужно знать. Для получения необходимых шагов см. Руководство.
Ответ 2
Убедитесь, что вы вызывали
CurrentPlatform.Init();
перед созданием экземпляра клиента службы мобильной связи
Ответ 3
Вот как я получил Mobile Services v1.3.2, работая над новым проектом Xamarin.Forms PCL:
- Установите папку "Мобильные службы в общий проект" Пакеты как
а также папки .iOS и .Droid 'Packages'.
- Удалить дубликаты ссылок в папках .iOS/.Droid:
"System.Runtime", "System.IO", "System.Threading.Tasks"
- Не забудьте добавить
CurrentPlatform.Init();
в 'AppDelegate.cs' в .iOS
проект и "MainActivity.cs" в проекте .Droid.
Пол Батум сделал хороший пример приложения Xamarin PCL, показывающего синхронизацию между iOS и Android-приложением: https://github.com/paulbatum/fieldengineerlite
Ответ 4
Убедитесь, что вы установили последнюю версию NuGet. Это должно решить проблему, когда Newtonsoft.Json не будет устанавливать в PCL.
Для Azure Mobile Services, если у вас все еще есть проблемы, я бы рекомендовал выполнить следующие шаги в руководстве по началу работы для загрузки предварительно сконфигурированного образца проекта.