迁移到 适用于 .NET 的 AWS 开发工具包 的版本 3.5 - 适用于 .NET 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

迁移到 适用于 .NET 的 AWS 开发工具包 的版本 3.5

适用于 .NET 的 AWS 开发工具包的版本 3.5 通过将对所有开发工具包的非 Framework 变体的支持转换为 .NET Standard 2.0,进一步标准化了 .NET 体验。根据您的环境和代码库,要利用 3.5 版功能,您可能需要执行某些迁移工作。

本主题介绍版本 3.5 中的更改以及从版本 3 迁移环境或代码可能需要执行的工作。

版本 3.5 的更改内容

以下内容介绍适用于 .NET 的 AWS 开发工具包版本 3.5 中已更改或尚未更改的内容。

.NET Framework 和 .NET Core

对 .NET Framework 和 .NET Core 的支持没有更改。

Xamarin

(新的和现有的)Xamarin 项目必须指向 .NET Standard 2.0。请参阅 Xamarin.Forms 中的 .NET Standard 2.0 支持.NET 实现支持

Unity

Unity 应用程序必须使用 Unity 2018.1 或更高版本指向 .NET Standard 2.0 或 .NET 4.x 配置文件。有关更多信息,请参阅 .NET 配置文件支持。此外,如果您使用 IL2CPP 来构建,则必须通过添加 link.xml 文件来禁用代码剥离,如从 Unity、Xamarin 或 UWP 中引用适用于 .NET Standard 2.0 的 AWS 开发工具包中所述。将代码移植到推荐的代码库之一后,Unity 应用程序可以访问开发工具包提供的所有服务。

由于 Unity 支持 .NET Standard 2.0,因此开发工具包版本 3.5 的 AWSSDk.core 程序包不再具有 Unity 特定的代码,包括一些更高级别的功能。为了提供更好的过渡,所有传统Unity 代码都可以在 aws/aws-sdk-unity-net 存储库中引用。GitHub如果您发现缺少影响将 AWS 与 Unity 结合使用的功能,则可以在 https://github.com/aws/dotnet/issues 提交功能请求。

另请参阅Unity 支持的特殊注意事项

通用 Windows 平台 (UWP)

将您的 UWP 应用程序指向版本 16299 或更高版本(秋季创建者更新,版本 1709,2017 年 10 月发布)。

Windows Phone 和 Silverlight

适用于 .NET 的 AWS 开发工具包的版本 3.5 不支持这些平台,因为 Microsoft 不再积极开发它们。有关更多信息,请参阅下列内容:

传统可移植类库(基于配置文件的 PCLs)

考虑将您的库重定向到 .NET 标准。有关更多信息,请参阅 Microsoft 提供的可移植类库的比较

Amazon Cognito Sync 管理器和 Amazon Mobile Analytics 管理器

使 Amazon Cognito Sync 和 Amazon Mobile Analytics 易于使用的高级抽象已从适用于 .NET 的 AWS 开发工具包版本 3.5 中删除。AWS AppSync 是 Amazon Cognito Sync 的首选替代品。 Amazon Pinpoint 是 Amazon Mobile Analytics 的首选替代品。

如果您的代码受到缺乏 AWS AppSync 和 Amazon Pinpoint 的更高级别库代码的影响,您可以记录您对以下一个或两个 GitHub 问题的兴趣:https://github.com/aws/dotnet/issues/20 和 。https://github.com/aws/dotnet/issues/19 您还可以从以下 Amazon Cognito Sync 存储库中获取 Amazon Mobile Analytics Manager 和 GitHub Manager 的库:aws/amazon-cognito-sync-manager-netaws/aws-mobile-analytics-manager-net

迁移同步代码

适用于 .NET 的 AWS 开发工具包的版本3.5 仅支持对 AWS 服务的异步调用。您必须使用版本 3.5 更改想要运行的同步代码,以使它异步运行。

以下代码段展示如何将同步代码更改为异步代码。这些代码段中的代码用于显示 Amazon S3 存储桶的数量。

原始代码调用 ListBuckets

private static ListBucketsResponse MyListBuckets() { var s3Client = new AmazonS3Client(); var response = s3Client.ListBuckets(); return response; } // From the calling function ListBucketsResponse response = MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}");

要使用此开发工具包的版本 3.5,请改为调用 ListBucketsAsync

private static async Task<ListBucketsResponse> MyListBuckets() { var s3Client = new AmazonS3Client(); var response = await s3Client.ListBucketsAsync(); return response; } // From an **asynchronous** calling function ListBucketsResponse response = await MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); // OR From a **synchronous** calling function Task<ListBucketsResponse> response = MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Result.Buckets.Count}");