我已经对这个引用错误失去了理智。我已经添加了Microsoft.Net.Http Nuget包,确保System.Net.Http引用被添加到页面,将System.Net.Http命名空间导入到类中。什么都没有。我甚至使用空白模板从头开始重新创建项目。有没有人能提供一些建议?谢谢!
Microsoft.Net.Http
System.Net.Http
iqjalb3h1#
在我的情况下,解决方案是将Visual Studio Professional 2017从15.x.y升级到15.9.18。
zzoitvuj2#
由于您已经添加了Microsoft.Net.Http Nuget包,因此在您的项目引用中,System.Net.Http旁边必须有一个感叹号,如下所示:
您需要删除它,然后再次:右键单击它并选择“删除”,然后从dll列表中再次添加它
icnyk63a3#
确保你的版本是.net 4.5及以上。我运行的是.net 4.0,那个库不起作用。你需要把你的解决方案移到4.5。然后用Nuget安装。
v9tzhpje4#
不知道你是否已经尝试过,但是:我所做的只是在项目引用中添加System.NET.Http。在ProjectExplorer中,右键单击references -> addreference,然后从dll列表中勾选相关复选框,然后单击OK
ryoqjall5#
在我的visual studio 2017 Xamarin.forms项目中,我遇到了同样的问题。如果我右键单击我的解决方案,有“管理NuGet包...”如果我选择它,在“浏览”中,我寻找“System.net“我选择了找到的项目,选中了项目的复选框并单击“安装”
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包而导致版本冲突时,它使用了该版本。
0ejtzxu17#
使用完全限定名:
public void MyMethod() { System.Net.Http.HttpClient client = .... }
字符串而不是:
using System.Net.Http public class MyClass { public void MyMethod() { HttpClient client = ... } }
型这应该会显示您遇到的问题。如果是名称冲突.
idfiyjo88#
第一步:
右键单击您的命名空间,即项目->添加->添加Nuget Packages。
第二步:
搜索system.NET.http并添加包。
第三步:
将using System.Net.Http;添加到cs类。
using System.Net.Http;
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
9条答案
按热度按时间iqjalb3h1#
在我的情况下,解决方案是将Visual Studio Professional 2017从15.x.y升级到15.9.18。
zzoitvuj2#
由于您已经添加了
Microsoft.Net.Http
Nuget包,因此在您的项目引用中,System.Net.Http旁边必须有一个感叹号,如下所示:您需要删除它,然后再次:右键单击它并选择“删除”,然后从dll列表中再次添加它
icnyk63a3#
确保你的版本是.net 4.5及以上。我运行的是.net 4.0,那个库不起作用。你需要把你的解决方案移到4.5。然后用Nuget安装。
v9tzhpje4#
不知道你是否已经尝试过,但是:
我所做的只是在项目引用中添加System.NET.Http。
在ProjectExplorer中,右键单击references -> addreference,然后从dll列表中勾选相关复选框,然后单击OK
ryoqjall5#
在我的visual studio 2017 Xamarin.forms项目中,我遇到了同样的问题。如果我右键单击我的解决方案,有“管理NuGet包...”如果我选择它,在“浏览”中,我寻找“System.net“我选择了找到的项目,
选中了项目的复选框并单击“安装”
gmol16396#
如果目标是4.6.2或更高版本,只要安装了nuget包,就忽略它们,因为它们是现有引用的依赖项。
然后,打开引用dll的.csproj文件并删除任何特定的版本关联,因此引用现在看起来像这样(旧的csproj格式):
字符串
以前,我的配置看起来像这样:
型
这将强烈鼓励msbuild使用GAC中的目标框架版本。在我的情况下,我的目标是4.7.2,当它警告由于nuget包而导致版本冲突时,它使用了该版本。
0ejtzxu17#
使用完全限定名:
字符串
而不是:
型
这应该会显示您遇到的问题。如果是名称冲突.
idfiyjo88#
第一步:
右键单击您的命名空间,即项目->添加->添加Nuget Packages。
第二步:
搜索system.NET.http并添加包。
第三步:
将
using System.Net.Http;
添加到cs类。axr492tv9#
对于正在更新到**.NET 8**的人来说,一个突破性的变化是:
“不再为System.Net.Http添加隐式使用”。
所以你需要显式地使用命名空间:
字符串
在这里阅读更多关于变化的信息:
https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/8.0/implicit-global-using-netfx