找不到引用的组件'System.Net.Http'

Adr*_*ila 6 .net nuget visual-studio-2017

我在VS2017中创建了一个针对.NET Framework 4.6.1的新项目,当我向System.Net.Http添加NuGet包引用时,我收到以下警告及其所有依赖性:

The referenced component 'System.Net.Http' could not be found.

项目(及其解决方案)编译但是当我运行时,我得到一个异常,因为在尝试实例化实例时无法找到程序集HttpClient.

我已经确认它HintPath指向packages文件夹中的正确位置,并且DLL的大小为193 KB.我删除了引用,并试图直接添加对DLL的引用,但没有成功.

我还尝试通过Framework> Assemblies添加引用,但无论我做什么,引用都有一个警告图标,引用的属性如下所示:

System.Net.Http参考属性

我尝试过以下方法:

  • 删除并添加NuGet引用
  • 删除引用,清除NuGet缓存,然后添加NuGet引用
  • 使用Update-Package -reinstall适当的参数
  • 将解决方案复制到另一台计算机并尝试(具有相同的结果)

似乎无论我尝试什么,我都无法获得工作的参考.我还应该尝试其他什么?

Adr*_*ila 7

TLDR - Service Fabric服务不适用于.NET Standard包的项目引用; 相反,使用完整的.NET Framework用于类库.


经过几个小时的反复试验,我能够确定问题不在于System.Net.Http软件包本身,而是在解决方案中引用另一个项目的结果.

如果我引用了针对netstandard1_6的项目,则System.Net.Http不会加载或解析引用(包括依赖包).一旦我删除了项目参考,他们加载好了!最终,我将我引用的项目更改为"常规".NET Framework项目,添加了对该版本的引用,并且我的所有引用都很好.

我们怀疑有一些事情,但不确定哪个是最终原因:

  • .NET Standard的项目文件格式与.NET Framework不同
  • Service Fabric项目需要x64,而.NET Standard项目需要任何CPU

任何额外的解释将不胜感激!