为什么我的 Xamarin Forms iOS 应用程序在使用 Microsoft Azure 移动服务时崩溃
Why is my Xamarin Forms iOS app crashing when using Microsoft Azure Mobile Services
我的 Xamarin Forms 应用程序有一个奇怪的问题,我似乎无法解决,我似乎一直在绕圈子。它似乎与我的 iOS 项目特别相关,并且围绕着程序集引用 Microsoft.WindowsAzure.Mobile
。当我 运行 我的应用程序在我的 iPhone 模拟器上然后尝试查看它从 Azure 获取数据的任何部分时,将触发以下消息。
System.InvalidOperationException: A Microsoft Azure Mobile Services
assembly for the current platform was not found. Ensure that the
current project references both Microsoft.WindowsAzure.Mobile and the
following platform-specific assembly:
Microsoft.WindowsAzure.Mobile.Ext.
我觉得这很奇怪,因为我已经安装了我认为是所有正确参考的东西:
已使用整个解决方案Xamarin.Forms v2.3.4.247
MyApp(便携式)
WindowsAzure.MobileServices 1.3.2
WindowsAzure.MobileService.SQLiteStore 1.0.1
MyApp.iOS
Microsoft.Azure.Mobile.Client 4.0.1
Microsoft.Azure.Mobile.Client.SQLiteStore 4.0.1
我认为 iOS 项目的 app.config 可能已损坏,或者在我安装这些 nuget 包时丢失了一些信息,所以我快速查看了一下,一切看起来都应该如此.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.0.0" newVersion="1.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="PInvoke.BCrypt" publicKeyToken="9e300f9f87f04a7a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.5.0.0" newVersion="0.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Validation" publicKeyToken="2fc06f0d701809a7" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.4.0.0" newVersion="2.4.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.Mobile" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
如果需要,我可以提供更多代码,但我想将问题限制在我所看到的以及它报告问题的地方。有谁知道是什么原因造成的,或者我需要做些什么来解决它?可能是导致问题的版本,我应该考虑回滚吗?
AFAIK,WindowsAzure.MobileServices is now deprecated and it used to work with Mobile Services (domain like {your-app-name}.azure-mobile.net). While Microsoft.Azure.Mobile.Client 用于移动应用程序(应用程序服务,域名如 {your-app-name}.azurewebsites.net)。
Does anyone know what could be causing this or what I need to do to resolve it? Could it perhaps be versions that are causing the problem and should I consider rolling back?
我注意到您的 iOS 项目的 app.config 有 dependentAssembly
关于 Microsoft.WindowsAzure.Mobile 的新版本 1.3.0.0。
据我了解,您已经安装了 WindowsAzure.MobileServices 和 Microsoft.Azure.Mobile.Client 包,我建议您使用相同的包来缩小此问题的范围。另外,在使用 MobileServiceClient
:
之前,您需要通过以下代码初始化 azure mobile
Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();
另外,我查看了我的xamarin.forms应用程序,安装了Microsoft.Azure.Mobile.Client 3.1.0, it could work as expected. Here is the git sample about azure-mobile-apps-quickstarts,你可以参考一下。
另外,这里有一个类似的git问题,你可以参考here.
我的 Xamarin Forms 应用程序有一个奇怪的问题,我似乎无法解决,我似乎一直在绕圈子。它似乎与我的 iOS 项目特别相关,并且围绕着程序集引用 Microsoft.WindowsAzure.Mobile
。当我 运行 我的应用程序在我的 iPhone 模拟器上然后尝试查看它从 Azure 获取数据的任何部分时,将触发以下消息。
System.InvalidOperationException: A Microsoft Azure Mobile Services assembly for the current platform was not found. Ensure that the current project references both Microsoft.WindowsAzure.Mobile and the following platform-specific assembly: Microsoft.WindowsAzure.Mobile.Ext.
我觉得这很奇怪,因为我已经安装了我认为是所有正确参考的东西:
已使用整个解决方案Xamarin.Forms v2.3.4.247
MyApp(便携式)
WindowsAzure.MobileServices 1.3.2
WindowsAzure.MobileService.SQLiteStore 1.0.1
MyApp.iOS
Microsoft.Azure.Mobile.Client 4.0.1
Microsoft.Azure.Mobile.Client.SQLiteStore 4.0.1
我认为 iOS 项目的 app.config 可能已损坏,或者在我安装这些 nuget 包时丢失了一些信息,所以我快速查看了一下,一切看起来都应该如此.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.0.0" newVersion="1.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="PInvoke.BCrypt" publicKeyToken="9e300f9f87f04a7a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.5.0.0" newVersion="0.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Validation" publicKeyToken="2fc06f0d701809a7" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.4.0.0" newVersion="2.4.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.Mobile" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
如果需要,我可以提供更多代码,但我想将问题限制在我所看到的以及它报告问题的地方。有谁知道是什么原因造成的,或者我需要做些什么来解决它?可能是导致问题的版本,我应该考虑回滚吗?
AFAIK,WindowsAzure.MobileServices is now deprecated and it used to work with Mobile Services (domain like {your-app-name}.azure-mobile.net). While Microsoft.Azure.Mobile.Client 用于移动应用程序(应用程序服务,域名如 {your-app-name}.azurewebsites.net)。
Does anyone know what could be causing this or what I need to do to resolve it? Could it perhaps be versions that are causing the problem and should I consider rolling back?
我注意到您的 iOS 项目的 app.config 有 dependentAssembly
关于 Microsoft.WindowsAzure.Mobile 的新版本 1.3.0.0。
据我了解,您已经安装了 WindowsAzure.MobileServices 和 Microsoft.Azure.Mobile.Client 包,我建议您使用相同的包来缩小此问题的范围。另外,在使用 MobileServiceClient
:
Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();
另外,我查看了我的xamarin.forms应用程序,安装了Microsoft.Azure.Mobile.Client 3.1.0, it could work as expected. Here is the git sample about azure-mobile-apps-quickstarts,你可以参考一下。 另外,这里有一个类似的git问题,你可以参考here.