我更新到最新版本的Xamarin,其中PCL是“完全支持”的。 我现在如何使用Azure移动服务?
如果我创建PCL lib并尝试使用NuGet添加它,则无法安装“Newtonsoft.Json 5.0.8”,因为它需要“portable-net45 + wp80 + MonoAndroid10 + MonoTouch10”,这是缺失的。
如果我创建简单的android lib并从组件中添加Azure,则生成除了:
System.InvalidOperationException:Windows Azure移动服务 找不到当前平台的程序集。确保cur ...
on
public static MobileServiceClient MobileService = new MobileServiceClient(
"https://no-link-here.azure-mobile.net/",
"no-key-here");
答案 0 :(得分:6)
首先,请确保您使用的是NuGet或Xamarin组件的1.1.5或更高版本,因为之前的版本在PCL支持方面存在一些问题。
有关在PCL中使用移动服务的分步指南,请参阅this tutorial。
如果您将Azure移动服务的Xamarin Component或NuGet package安装到Android应用程序中,您会发现它添加了这些引用(以及其他内容):
第一个程序集是PCL,第二个程序集具有特定于平台的实现(这就是上面的错误消息所缺少的内容)。
针对移动服务的NuGet包具有为Xamarin.iOS和Xamarin.Android定义的特定平台目标,因此如果您使用的是Visual Studio,则可以选择仅使用NuGet并完全跳过Xamarin组件。
由于BCL NuGet包(HttpClient,Bcl.Build等)与Xamarin的交互方式存在一些缺陷,因此您需要了解一些解决方法。请参阅上面的教程以了解必要的步骤。
答案 1 :(得分:6)
确保已拨打
CurrentPlatform.Init();
在实例化移动服务客户端之前
答案 2 :(得分:4)
以下是我在新的Xamarin.Forms PCL项目中使用Mobile Services v1.3.2的方法:
CurrentPlatform.Init();
添加到“AppDelegate.cs”
项目和.Droid项目中的“MainActivity.cs”。Paul Batum做了一个很好的示例Xamarin PCL应用程序,显示iOS和Android应用程序之间的同步:https://github.com/paulbatum/fieldengineerlite
答案 3 :(得分:1)
确保您已安装the latest version of NuGet。这应该可以解决Newtonsoft.Json无法在PCL中安装的问题。
对于Azure移动服务,如果您仍然遇到问题,我建议您按照getting started guide中的步骤下载预配置的示例项目。