WindowsAzure.Storage SDK отсутствует API в .NET Standard - PullRequest
0 голосов
/ 09 июля 2019

Я конвертирую библиотеку классов .NET Framework 4.7.1 в .NET Standard 2.0.

Библиотека использует несколько пакетов Nuget, все из которых доступны как для .NET Framework, так и для .NET Standard, и эти пакеты включают в себя WindowsAzure.Storage SDK.

Исходная библиотека классов .NET Framework компилируется и работает правильно, но библиотека .NET Standard не компилируется из-за отсутствия API (и некоторых других сигнатур методов) в WindowsAzure.Storage SDK.

Например, CloudBlockBlob имеет метод DeleteIfExists в .NET Framework, но не в .NET Standard.

Документация API перечисляет этот метод (и все остальные, которые не работают в .NET Standard), но не содержит никаких различий в версиях между целевыми платформами. Я что-то здесь упустил?

Это нормально, что некоторые пакеты .NET Standard Nuget имеют пробелы в своих API?

Есть ли решение или обходной путь для этого (кроме переписывания кода, который использует эти API)?

Спасибо, заранее.

1 Ответ

1 голос
/ 10 июля 2019

Как упоминал Питер Бонс, в пакете nuget WindowsAzure.Storage есть только методы, основанные на задачах, поэтому DeleteIfExistsAsync для .net core / .net standard.

Пожалуйста, используйте новый пакет nuget для хранения Azure. Для хранилища больших двоичных объектов вы можете установить Microsoft.Azure.Storage.Blob , версия 9.4.0 или выше, которая поддерживает методы синхронизации / асинхронности.

Журнал изменений здесь :

enter image description here

А вот простой тест со стандартным проектом .net с установленным Microsoft.Azure.Storage.Blob версии 9.4.0 или выше. Есть оба метода синхронизации / асинхронности.

enter image description here

...