首页 > 解决方案 > WindowsAzure.Storage SDK 在 .NET Standard 中缺少 API

问题描述

我正在将 .NET Framework 4.7.1 类库转换为 .NET Standard 2.0。

该库使用许多 Nuget 包,所有这些包都可用于 .NET Framework 和 .NET Standard,并且这些包包括WindowsAzure.StorageSDK。

原始 .NET Framework 类库可以正确编译和运行,但 .NET Standard 库无法编译,因为 WindowsAzure.Storage SDK 上缺少 API(和一些不同的方法签名)。

例如,在 .NET Framework 中CloudBlockBlob有一个DeleteIfExists方法,但在 .NET Standard 中没有。

API 文档列出了此方法(以及所有其他在 .NET Standard 中被破坏的方法),但似乎没有提及目标框架之间的任何版本差异。我在这里错过了一些相关的东西吗?

某些 .NET Standard Nuget 包的 API 存在差距是否正常?

是否有解决方案或解决方法(除了重写使用这些 API 的代码)?

提前致谢。

标签: azure.net-4.0azure-storage.net-standard

解决方案


正如 Peter Bons 提到的,在 nuget 包WindowsAzure.Storage中,只有基于任务的方法,因此 DeleteIfExistsAsync 用于 .net core / .net 标准。

请使用新的 nuget 包进行 azure 存储。对于 blob 存储,您可以安装Microsoft.Azure.Storage.Blob版本 9.4.0 或更高版本,它支持同步/异步方法。

更改日志在这里

在此处输入图像描述

这是一个安装了 Microsoft.Azure.Storage.Blob 9.4.0 或更高版本的 .net 标准项目的简单测试。同步/异步方法都在那里。

在此处输入图像描述


推荐阅读