View a markdown version of this page

迁移到Amazon SDK for .NET 3.5 版 - Amazon SDK for .NET (V3)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon SDK for .NET V3 已结束支持。

我们建议您迁移到 Amazon SDK for .NET V4。有关如何迁移的更多详细信息和信息,请参阅我们的终止支持公告

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

迁移到Amazon SDK for .NET 3.5 版

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

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

3.5 版的更改内容

以下内容介绍Amazon SDK for .NET版本 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 中引用Amazon SDK for .NET(Standard 2.0)中所述。将代码移植到推荐的代码库之一后,Unity 应用程序可以访问开发工具包提供的所有服务。

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

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

通用 Windows 平台 (UWP)

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

Windows Phone 和 Silverlight

Amazon SDK for .NET的版本 3.5 不支持这些平台,因为 Microsoft 不再积极开发它们。有关更多信息,请参阅下列内容:

传统的便携式类库(基于配置文件的 PCL)

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

Amazon Cognito Sync Manager 和 Amazon Mobile Analytics Manager

Amazon SDK for .NET 3.5 版中删除了便于使用 Amazon Cognito Sync 和 Amazon Mobile Analytics 的高级抽象。 Amazon AppSync是 Amazon Cognito Sync 的首选替代品。Amazon Pinpoint 是 Amazon Mobile Analytics 的首选替代品。

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

迁移同步代码

Amazon SDK for .NET 3.5 版同时支持 .NET Framework 和 .NET Standard(通过 .NET Core 3.1、.NET 5 等 .NET Core 版本)。符合 .NET Standard 的开发工具包版本仅提供异步方法,因此,如果您想利用 .NET Standard,则必须更改同步代码以使其异步运行。

以下代码片段展示如何将同步代码更改为异步代码。这些代码片段中的代码用于显示 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}");