WindowsAzure.Storage SDK缺少.NET Standard中的API

时间:2019-07-09 16:08:10

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

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

该库使用了许多Nuget程序包,所有这些程序包均适用于.NET Framework和.NET Standard,并且这些程序包包括WindowsAzure.Storage SDK。

原始的.NET Framework类库可以编译并正确运行,但由于WindowsAzure.Storage SDK缺少API(以及一些不同的方法签名),. NET标准库无法编译。

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

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

某些.NET Standard Nuget程序包的API中存在空白是正常的吗?

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

谢谢。

1 个答案:

答案 0 :(得分:1)

如Peter Bons所述,在nuget程序包WindowsAzure.Storage中,仅存在基于任务的方法,因此对于.net core / .net标准,为DeleteIfExistsAsync。

请使用新的nuget软件包进行天蓝色存储。对于Blob存储,您可以安装9.4.0或更高版本的Microsoft.Azure.Storage.Blob,该版本不支持同步/异步方法。

更改日志为here

enter image description here

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

enter image description here