【问题标题】:Why the error when instantiating Azure Mobile Services?为什么实例化 Azure 移动服务时出错?
【发布时间】:2013-08-06 22:27:33
【问题描述】:

这里是环境:

  • 2 个可移植类库:
    • 基础库(.NET 4.5、SL4、WP 7.5、Win App Store);
    • 主库(.NET 4.5、SL4、WP 7.5、Win App Store):
      • Windows Azure 移动服务 v 1.0.1 包;
  • 1 个测试项目 (.NET 4.5);
    - Windows Azure 移动服务 v 1.0.1 包;

当我尝试在调试中运行测试项目时,我收到以下错误消息:

找不到当前平台的 Windows Azure 移动服务程序集。确保当前项目同时引用 Microsoft.WindowsAzure.Mobile 和以下特定于平台的程序集:Microsoft.WindowsAzure.Mobile.Ext。

它发生在以下行:

private IMobileServiceClient _mobileService = new MobileServiceClient(
        "TheUrl",
        "TheKey"
        );

由于我在两个项目(主库、测试项目)上都安装了包,我无法理解我与错误消息有什么关系,有什么灯吗?

【问题讨论】:

  • 我创建了一个 Windows Phone 项目,它似乎没有问题,它只发生在测试项目中。

标签: c# .net azure azure-mobile-services


【解决方案1】:

是的,我花了一些时间才找到这个,但它位于最明显的位置:https://components.xamarin.com/view/azure-mobile-services/

这家伙也成功了:http://blog.csainty.com/2013/12/quick-tip-azure-mobile-services-xamarin.html

  • 在 iOS 上运行时,如果遇到 未找到当前平台的 Windows Azure 移动服务程序集错误,请确保在 iOS 应用程序中调用 Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();。 p>

  • 如果您在 Xamarin.Android 项目中使用此组件时遇到 CryptographicException,请注意这仅在 所有错误时中断 或 Xamarin Studio 中的等效项打开时才会发生。该异常发生在单声道 HTTPS 基础架构中,会被自动捕获和处理,不会影响您的应用程序。

【讨论】:

    【解决方案2】:

    在您的测试项目中,您应该创建 IMobileServiceClient 的 Mock,然后在 Mock 上设置您预期的操作。尝试查看 Rhino Mock 以了解如何模拟接口以进行测试

        private IMobileServiceClient client = MockRepository.GenerateMock();
    

    【讨论】:

      【解决方案3】:

      确保您在 AppDelegate 中调用 CurrentPlatform.Init() 函数。 IOS 似乎是唯一需要特定调用才能工作的平台。此外,我在 System.RunTime、System.Threading 等的多个程序集引用中遇到了错误,我需要删除这些引用以避免歧义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-30
        • 2017-08-16
        • 1970-01-01
        • 1970-01-01
        • 2020-08-22
        相关资源
        最近更新 更多