找不到类型或名称空间“HttpClient”

时间:2016-01-20 13:15:44

标签: c# .net

我对这个参考错误感到失望。我添加了Microsoft.Net.Http Nuget包,确保将System.Net.Http引用添加到页面,将System.Net.Http命名空间导入到类中。没有。我甚至使用空白模板从头开始重新创建项目。

有人可以提供一些想法吗?谢谢!

8 个答案:

答案 0 :(得分:10)

不确定您是否已经尝试过此操作,但是:

我所做的就是在项目参考中添加system.net.http。

在Project Explorer中,右键单击引用 - >添加引用,然后勾选dll列表中的相关复选框,然后单击“确定”

答案 1 :(得分:7)

在我的视觉工作室2017 Xamarin.forms项目中我遇到了同样的问题。 如果我右键单击我的解决方案,那就是 "管理NuGet包..." 如果我选择它,在"浏览"中,我寻找" System.net" 我选择了找到的项目enter image description here 选中项目的复选框,然后单击"安装"

答案 2 :(得分:3)

使用完全限定名称:

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

而不是:

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

这应该会告诉你你遇到了什么问题。如果是名称冲突......

答案 3 :(得分:2)

第1步:

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

第2步:

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

第3步:

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

答案 4 :(得分:1)

如果定位到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软件包而导致版本冲突时,它使用该版本。

答案 5 :(得分:0)

就我而言,解决方案是将Visual Studio Professional 2017从15.x.y升级到15.9.18。

答案 6 :(得分:0)

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

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

答案 7 :(得分:0)

确保您的版本是.net 4.5及更高版本。我正在运行.net 4.0,该库将无法工作。您需要将解决方案移至4.5。然后使用Nuget进行安装。