我正在将.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的代码)?
谢谢。
答案 0 :(得分:1)
如Peter Bons所述,在nuget程序包WindowsAzure.Storage
中,仅存在基于任务的方法,因此对于.net core / .net标准,为DeleteIfExistsAsync。
请使用新的nuget软件包进行天蓝色存储。对于Blob存储,您可以安装9.4.0或更高版本的Microsoft.Azure.Storage.Blob,该版本不支持同步/异步方法。
更改日志为here:
这是对安装了9.4.0或更高版本的Microsoft.Azure.Storage.Blob的.net标准项目的简单测试。同步/异步方法都在这里。