Мне удалось получить ту же ошибку, что и вы, когда я ссылался на DotNetty.Transport из проекта Xamarin.Android, компилируя / ориентируясь на API уровня 28. Кажется, это проблема с System.Threading.Tasks.Extensions v4.5.1, на который DotNetty.Transport ссылается. Вот ссылка на похожую проблему из другого проекта:
https://github.com/dotnet/reactive/issues/803
Подводя итог, похоже, что Systems.Threading.Tasks.Extensions
v4.5.1 имеет пустой профиль для MonoAndroid10. Поскольку профиль пуст, он не может разрешить файл System.Threading.Tasks.Extensions.dll
, поэтому возникает ошибка.
Чтобы это исправить, вы должны обновить файл Android * .csproj и перенаправить ссылку, чтобы использовать System.Threading.Tasks.Extensions.dll
, определенный в профиле netstandard2.0
.
Я выполнил следующие шаги:
- Добавьте пакет nuget System.Threading.Tasks.Extensions v4.5.1 в ваш проект Xamarin.Android.
- Добавьте пакет nuget System.Runtime.CompilerServices.Unsafe v4.5.2 в ваш проект Xamarin.Android
- Закрыть Visual Studio.
- Откройте файл Xamarin.Android * .csproj в текстовом редакторе.
- Добавьте еще один
<ItemGroup>
, чтобы сообщить своему проекту об использовании профиля .netstandard2.0
вместо MonoAndroid10
профиля
<ItemGroup>
<Reference Include="System.Threading.Tasks.Extensions">
<HintPath>$(UserProfile)\.nuget\packages\system.threading.tasks.extensions\4.5.1\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
</ItemGroup>
Так это должно выглядеть примерно так:
Сохраните файл и перезагрузите ваш проект в visual studio. После этого я смог успешно скомпилировать.