.net 找不到类型或命名空间'HttpClient'

yiytaume  于 2023-11-20  发布在  .NET
关注(0)|答案(9)|浏览(219)

我已经对这个引用错误失去了理智。我已经添加了Microsoft.Net.Http Nuget包,确保System.Net.Http引用被添加到页面,将System.Net.Http命名空间导入到类中。什么都没有。我甚至使用空白模板从头开始重新创建项目。
有没有人能提供一些建议?谢谢!

iqjalb3h

iqjalb3h1#

在我的情况下,解决方案是将Visual Studio Professional 2017从15.x.y升级到15.9.18。

zzoitvuj

zzoitvuj2#

由于您已经添加了Microsoft.Net.Http Nuget包,因此在您的项目引用中,System.Net.Http旁边必须有一个感叹号,如下所示:

您需要删除它,然后再次:右键单击它并选择“删除”,然后从dll列表中再次添加它

icnyk63a

icnyk63a3#

确保你的版本是.net 4.5及以上。我运行的是.net 4.0,那个库不起作用。你需要把你的解决方案移到4.5。然后用Nuget安装。

v9tzhpje

v9tzhpje4#

不知道你是否已经尝试过,但是:
我所做的只是在项目引用中添加System.NET.Http。
在ProjectExplorer中,右键单击references -> addreference,然后从dll列表中勾选相关复选框,然后单击OK

ryoqjall

ryoqjall5#

在我的visual studio 2017 Xamarin.forms项目中,我遇到了同样的问题。如果我右键单击我的解决方案,有“管理NuGet包...”如果我选择它,在“浏览”中,我寻找“System.net“我选择了找到的项目,

选中了项目的复选框并单击“安装”

gmol1639

gmol16396#

如果目标是4.6.2或更高版本,只要安装了nuget包,就忽略它们,因为它们是现有引用的依赖项。
然后,打开引用dll的.csproj文件并删除任何特定的版本关联,因此引用现在看起来像这样(旧的csproj格式):

<Reference Include="System.Net.Http" />

字符串
以前,我的配置看起来像这样:

<Reference Include="System.Net.Http, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <HintPath>..\packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll</HintPath>
  <Private>True</Private>
  <Private>True</Private>
</Reference>


这将强烈鼓励msbuild使用GAC中的目标框架版本。在我的情况下,我的目标是4.7.2,当它警告由于nuget包而导致版本冲突时,它使用了该版本。

0ejtzxu1

0ejtzxu17#

使用完全限定名:

public void MyMethod()
{
    System.Net.Http.HttpClient client = ....
}

字符串
而不是:

using System.Net.Http
public class MyClass
{
    public void MyMethod()
    {
        HttpClient client = ...
    }
}


这应该会显示您遇到的问题。如果是名称冲突.

idfiyjo8

idfiyjo88#

第一步:

右键单击您的命名空间,即项目->添加->添加Nuget Packages。

第二步:

搜索system.NET.http并添加包。

第三步:

using System.Net.Http;添加到cs类。

axr492tv

axr492tv9#

对于正在更新到**.NET 8**的人来说,一个突破性的变化是:

“不再为System.Net.Http添加隐式使用”

所以你需要显式地使用命名空间:

using System.Net.Http

字符串
在这里阅读更多关于变化的信息:
https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/8.0/implicit-global-using-netfx

相关问题