gpt4 book ai didi

c# - 在 Xamarin Android 项目中引用 .Net Standard 项目时出错

转载 作者:搜寻专家 更新时间:2023-11-01 09:22:09 27 4
gpt4 key购买 nike

当我在 Andoid 项目中添加对 .Net Standard 项目的引用时出现此错误。

Severity Code Description Project File Line Suppression State Error Can not resolve reference: System.Threading.Tasks.Extensions, referenced by DotNetty.Transport. Please add a NuGet package or assembly reference for System.Threading.Tasks.Extensions, or remove the reference to DotNetty.Transport. VFMApp.Droid

我试过:

  1. 既不是 NuGet 包(System.Threading.Tasks.Extensions/DotNetty.Transport),干净的解决方案,编译项目成功,引用项目,编译:错误

  2. DotNetty.Transport 的 NuGet 包,干净的解决方案,编译项目成功,引用项目,编译:错误

  3. System.Threading.Tasks.Extensions 的 NuGet 包,清理解决方案,成功编译项目,引用项目,编译:错误

  4. 两个 NuGet 包(System.Threading.Tasks.Extensions/DotNetty.Transport),清理解决方案,成功编译项目,引用项目,编译:错误

.Net Standard 项目中的包:

  • Acr.UserDialogs 7.0.1
  • Humanizer 2.5.16
  • Microsoft.Azure.Devices.Client 1.18.1
  • Microsoft.Azure.Mobile.Client 4.1.1
  • Microsoft.Azure.Mobile.Client.SQLiteStore 4.1.1
  • NETStandard.Library 2.0.3
  • 插件.Share 7.1.1
  • Refractored.MvvmHelpers 1.4.1-测试版
  • Xam.Plugin.Connectivity 4.0.0.190-beta
  • Xam.Plugin.DeviceInfo 4.1.0-测试版
  • Xam.Plugin.Geolocator 4.5.4-测试版
  • Xam.Plugin.Media 4.1.1-beta
  • Xam.Plugins.Settings 4.0.0.10-beta

Android 项目中的包:

  • Xamarin.Android.Support.Compat 28.0.0
  • Xamarin.Android.Support.Design 28.0.0
  • Xamarin.GooglePlayServices.Maps 60.1142.1

最佳答案

当我从针对 API 级别 28 编译/定位的 Xamarin.Android 项目中引用 DotNetty.Transport 时,我遇到了与您相同的错误。这似乎是 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文件,因此错误。

enter image description here

要解决此问题,您必须更新 android *.csproj 文件并重定向引用以使用 System.Threading.Tasks.Extensions.dllnetstandard2.0 中定义的简介。

enter image description here

我执行了以下步骤:

  1. 将 System.Threading.Tasks.Extensions v4.5.1 nuget 包添加到您的 Xamarin.Android 项目。
  2. 将 System.Runtime.CompilerServices.Unsafe v4.5.2 nuget 包添加到您的 Xamarin.Android 项目
  3. 关闭 Visual Studio。
  4. 使用文本编辑器打开 Xamarin.Android *.csproj 文件。
  5. 再添加一个<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>

所以它应该看起来像这样:

enter image description here

保存文件并在 visual studio 中重新加载项目。在我这样做之后,我能够成功编译。

关于c# - 在 Xamarin Android 项目中引用 .Net Standard 项目时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54043386/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com