【问题标题】:Xamarin linker error with AWSSDKAWSSDK 的 Xamarin 链接器错误
【发布时间】:2017-01-13 03:28:22
【问题描述】:

我有一个 Xamarin 表单移动项目(Android 和 iOS)。

当我尝试安装 AWSSDK.S3 以访问 Amazon 服务时,我在尝试构建 iOS 时收到以下链接器错误:

无法从“AWSSDK.Core,版本=3.3.0.0,文化=中性,PublicKeyToken=885c28607f98e604"

..Android build 也有类似的错误。

我安装了以下库:

AWSSDK.S3 v3.1.1.1 AWSSDK.Core v3.3.4 AWSSDK.SecurityToken v3.3.0.2 AWSSDK.CognitolIdenity v3.3.0.2 AWSSDK.CognitoIdentityProvider v3.3.1.2 PCLCrypto v2.0.147 PCLStorage v1.0.2

我的项目中唯一的代码是:

 var amazonClient = new AmazonS3Client();

有什么想法吗?

【问题讨论】:

  • 我建议您检查您的程序集和linkskip 其中一些自定义程序集。这样您就可以保留Link SDK Assemblies 并解决您的问题。 developer.xamarin.com/guides/android/advanced_topics/linking/…
  • 我了解 linkskip,关于跳过哪些程序集以修复从 AWSSDK.Core 对 Amazon.Runtime.Internal.Util.AESEncryptionPutObjectStream 的丢失调用的任何想法?
  • 从链接跳过所有内容开始,然后逐步进行。我不熟悉这个库,因此除非我可以反编译它,否则我不会在这里提供太多帮助。但我挑战你在这里使用消除过程!

标签: amazon-web-services xamarin amazon-s3 xamarin.ios xamarin.android


【解决方案1】:

似乎可行的可能(坏)解决方法:

链接器选项/链接器行为的变化:

到:不要链接

而不是:仅链接 SDK 程序集

【讨论】:

    【解决方案2】:

    答案竟然在这里:

    Xamarin Forms IOS Failed to load assembly System.Net.Http.Primitive

    即使它是一个不同的装配错误,修复是相同的:

    • 将所有 AWS.Core 更新到最新版本:在我的情况下为 v3.3.6
    • 安装 Microsoft.Bcl.Build v1.0.21
    • 安装Microsoft.Net.Http v2.2.29

    【讨论】:

      【解决方案3】:

      回滚到 AWSSDK.S3 V3.1.10 对我有用,使用 Visual Studio 中的 NuGet 管理器完成。 =)

      【讨论】:

      • 你是怎么做到的?请填写您的答案
      • @Daniel,NuGet 可以让你回滚到任何版本的包,你只需要在下拉列表中选择你想要的那个
      • 从 Visual Studio 转到:工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包 -> 单击“已安装”选项卡 -> 选择 AWSSDK.S3 -> 在右侧,选择您的项目,然后是下面下拉列表中的版本 -> 单击安装 -> 完成
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 2016-08-01
      相关资源
      最近更新 更多