【问题标题】:WindowsAzure.Storage SDK missing APIs in .NET StandardWindowsAzure.Storage SDK 在 .NET Standard 中缺少 API
【发布时间】:2019-07-10 15:20:56
【问题描述】:

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

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

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

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

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

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

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

谢谢,提前。

【问题讨论】:

  • 您使用的是什么版本的 Storage SDK?
  • Afaik 只有基于任务的方法,所以 DeleteIfExistsAsync。
  • @GauravMantri:我在两个类库中都使用 v9.3.3。
  • @PeterBons:谢谢!是的,DeleteIfExistsAsync() 存在于 WindowsAzure.Storage 的 .NET Standard 版本中是对的,所以我想,我需要重新编写代码才能以异步方式正确使用这些 API。

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


【解决方案1】:

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

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

更改日志为here

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

【讨论】:

  • 谢谢伊万 - 这是一个非常完整和详细的答案。
猜你喜欢
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
相关资源
最近更新 更多