我在VS2017中创建了一个针对.NET Framework 4.6.1的新项目,当我向System.Net.Http添加NuGet包引用时,我收到以下警告及其所有依赖性:< / p>
The referenced component 'System.Net.Http' could not be found.
项目(及其解决方案)编译,但是当我运行时,我得到一个异常,因为在尝试实例化HttpClient
的实例时无法找到程序集。
我已确认HintPath
指向packages文件夹中的正确位置,而DLL的大小为193 KB。我删除了引用,并尝试直接添加对DLL的引用,但没有成功。
我还试图通过Framework&gt;添加引用。程序集,但无论我做什么,引用都有一个警告图标,引用的属性如下所示:
我尝试了以下内容:
Update-Package -reinstall
与适当的参数似乎无论我尝试什么,我都无法获得工作的参考。我还应该尝试其他什么?
答案 0 :(得分:7)
TLDR - Service Fabric服务不适用于.NET Standard包的项目引用;相反,使用完整的.NET Framework用于类库。
经过几个小时的反复试验,我能够确定问题不在于System.Net.Http
包本身,而是在解决方案中引用另一个项目的结果。
如果我引用了针对netstandard1_6的项目,则System.Net.Http
引用(包括依赖包)将无法加载或解析。一旦我删除了项目参考,他们加载好了!最终,我将我引用的项目更改为&#34; regular&#34; .NET Framework项目,添加了对该版本的引用,我的所有引用都很好。
我们怀疑有一些事情,但不确定哪个是最终原因:
任何其他解释将不胜感激!
答案 1 :(得分:2)
今天我遇到了这个问题。在我的情况下,原因是我将NuGet选项中的依赖行为设置为“最低”,从而下载依赖包的最低兼容版本。不幸的是,这有时意味着它下载的软件包版本与项目的运行时版本不兼容。在我的例子中,软件包System.Net.Http.Formatting.Extensions导致安装了System.Net.Http版本2.20 ...,这是我的.NET 4.7.1项目无法识别的。
在解决方案的Nuget包管理器的“更新”选项卡上,它将显示这些包的更新。安装它们,你的问题应该解决。 或者,在安装NuGet包时将依赖关系行为设置为最高。
答案 2 :(得分:0)
有时删除所有现有参考很有用。 然后重新加载项目,并删除引用中的每个错误图标。 然后手动添加每个参考。