Xamarin.Forms 中用于 .Net Standard 2.0 的 ModernHttpClient

Posted

技术标签:

【中文标题】Xamarin.Forms 中用于 .Net Standard 2.0 的 ModernHttpClient【英文标题】:ModernHttpClient for .Net Standard 2.0 in Xamarin.Forms 【发布时间】:2018-06-22 14:26:43 【问题描述】:

我正在尝试从 ManagedNUGet 安装 ModernHttpClient。但安装完成后,它会显示以下警告。我正在尝试安装在便携式项目中。

使用“.NetFramework”恢复包“modernhttpclient 2.4.2”, version=4.6.1' 而不是项目目标框架 '.NetStandard,版本 = v2.0'。此软件包可能不完全兼容 与您的项目

【问题讨论】:

【参考方案1】:

如果您使用的是 .NET Standard,则不必使用 ModernHttpClient。只需转到项目的属性并选择 HttpClientHandler implementation。

安卓: https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/http-stack?tabs=macos

ios: https://docs.microsoft.com/en-us/xamarin/cross-platform/macios/http-stack

【讨论】:

请注意,AndroidClientHandler 需要 Android >= 5.0,因此如果您支持低于该版本的版本,您可能仍会使用 ModernHttpClient。【参考方案2】:

您可能正在为您的共享项目使用可移植类库。很长一段时间以来,它是(并且部分仍然是)xamarin(表单)共享代码库的标准类型。

但是,由于 Microsoft 引入了 .Net 标准,因此鼓励开发人员创建 .net 标准类库,而不是使用旧的 PCL 方法。 因此,许多 nuget 包得到了更新,使其与 .net 标准兼容,但是对可移植类库的支持却被放弃了。

如果你想使用特定的 nuget 包,基本上你必须将你的 pcl 转换为 .net 标准类库。

【讨论】:

嗨,马库斯,感谢您的回复。我通常从 NUGet 安装软件包。所以,我只是进入我项目的可共享库(可移植类库)的管理 NUGet 并尝试在其中安装。有没有其他方法可以安装ModernHttpClient?以及如何将 PCL 库 ModernHttpClient 转换为支持的 .NetStandard? 查看此链接:montemagno.com/… 转换 PCL 后,您应该可以安装 nuget 包了。 我忘了提到我正在开发新项目,即 .NetStandard(不将 PCL 转换为 .NetStandard)。我应该为 .NetStandard 2.0 中的ModernHttpClient 使用哪个 NUGet?如果我理解错误,请解释我。我是 .NetStandard 2.0 的新手

以上是关于Xamarin.Forms 中用于 .Net Standard 2.0 的 ModernHttpClient的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms 与 Net.Http [关闭]

Xamarin.Forms FlyoutPage 不适用于 Prism

Breeze# 用于 Xamarin.Forms(UWP、Droid 和 iOS)?

用于绑定的 Xamarin.Forms MarkupExtension

Xamarin.Forms(2.5.0.122203)使用Zxing.Net.Mobile.Forms(2.3.3)时,Android端莫名崩溃

.NET MAUI 正式发布,再见了 Xamarin.Forms