我有一个小的MVC应用程序,我出于练习的原因使用它,但现在我每次尝试调试时都遇到错误:
Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies.
The system cannot find the path specified.
我用谷歌搜索但无法找到解决方案。我正在使用.NET 4.5。
它不能是DLL文件,因为我使用的是.Net 4.5。
答案 0 :(得分:161)
每当我遇到像这样的NuGet错误时,我通常会采取以下步骤:
采取所有这些步骤几乎总能恢复我的MVC计划所需的所有软件包和dll。
编辑>>>
对于Visual Studio 2013及更高版本,步骤2)应为:
答案 1 :(得分:139)
删除对System.Net.*
,
Install-Package Microsoft.AspNet.WebApi.Client
清理并重建项目
答案 2 :(得分:22)
我发现了一个额外的
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
</dependentAssembly>
在我的web.config中。删除它以使其工作。我安装的其他一些软件包,然后删除导致了这个问题。
答案 3 :(得分:15)
user3919888指出了我正确的方向,但我需要在Package-Manager控制台中运行Update-Package -reinstall Microsoft.AspNet.WebApi.Client
。基本安装本身无法识别问题,但确实已识别出软件包已安装且未覆盖它。
我发布这个答案是因为这种情况很少发生,所以在我记得上次做的事情之前,我最终谷歌搜索并到达了这个页面。
答案 4 :(得分:13)
从web.config
删除以下行解决了我的问题。请注意,在此项目中,我没有使用WebApi组件。所以对于其他人来说,这个解决方案可能无法按预期工作。
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
答案 5 :(得分:6)
System.Net.*
Microsoft.AspNet.WebApi
及其依赖项。Microsoft.AspNet.WebApi
及其依赖项。 答案 6 :(得分:5)
最初在GeoMac的评论中提出并记录在NuGet's docs上,当其他答案都没有起作用时,以下内容对我有用:
工具/ NuGet包管理器/包管理器控制台
Update-Package -ProjectName MyProjectName -reinstall
答案 7 :(得分:3)
就我而言,上述解决方案均无效。我通过右键点击参考
解决了这个问题从Visual Studio中System.Net.Http.Formatting
并将属性将本地复制设置为 true 。
我希望这在某种程度上有用。
答案 8 :(得分:3)
对于将 .NET Standard 项目与 .NET Framework 项目结合使用的用户:
以.NET Standard方式,.NET Standard项目中包含的软件包将在其他.NET Core和.NET Standard项目中正确使用。
采用.NET Framework方式,如果要从.NET Framework(MVC)项目引用.NET Standard项目,则需要手动下载并安装相同的nuget软件包。
因此,我的问题的答案是,我必须在使用需要Microsoft.AspNet.WebApi.Client
的.NET Standard项目的Web项目(.NET Framework)中下载并安装Microsoft.AspNet.WebApi.Client
。实际上,我已经安装了此版本,但是存在版本差异。
我只是添加此答案以供其他人查看,它可能不会直接回答OP的问题,但是通过先检查此问题而不是进行投票最多的答案确实为我节省了时间。
答案 9 :(得分:1)
对我而言,它就像
一样简单Microsoft.AspNet.WebApi.Client
答案 10 :(得分:1)
为我解决这个烦人的错误只是关闭Visual Studio并再次打开它。然后重建解决方案,这一切都再次起作用。很抱歉垃圾回答,但我认为它值得一个答案,因为它为我解决了。
答案 11 :(得分:1)
对我来说,这个问题是由于添加 Microsoft.AspNet.WebApi.Client 包后在 Web.config (System.Net.Http.Formatting) 中缺少程序集绑定条目引起的。
我检查了我拥有的 Microsoft.AspNet.WebApi.Client 版本,并将以下绑定添加到 Web.config:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
</dependentAssembly>
根据您拥有的 WebApi.Client 版本,更改绑定重定向中的版本。
答案 12 :(得分:1)
我正面临着同样的问题,因为
在Webconfig中编写的System.Net.Http.Formatting
版本为5.0.3,但在bin文件夹中,库System.Net.Http.Formatting dll版本为4.0.2
所以我只替换了bin中给定的那个
只需完成这个干净的项目并构建
答案 13 :(得分:0)
检查您的版本是否与 --> web.config 文件和 --> Microsoft.AspNet.WebApi.Client,Microsoft.AspNet.WebApi 如果没有请更新
答案 14 :(得分:0)
我在VS 2019中遇到了ASP.NET项目的问题。
另一个症状是,在项目引用列表(解决方案资源管理器)中某些引用(System.Web.Http)被标记为错误
我的解决方案:
原因:
看着csproj文件中的差异,我可以看到造成问题的原因。有人设法在Windows程序文件文件夹中引用了DLL!
<Reference Include="System.Web.Http">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>
答案 15 :(得分:0)
VS2019:工具-> Nuget软件包管理器->软件包管理器设置->在“软件包还原”部分,选中2个选项。 之后,转到项目包文件夹并删除其中的所有子文件夹(不再出现任何错误) 然后重新构建解决方案,Nuget将重新下载所有软件包,并且项目应在没有任何参考的情况下运行。
答案 16 :(得分:0)
我为解决这个问题所做的是
转到NuGet程序包管理器。
选择更新(从左侧面板中)
更新WebApi组件
此后,项目运行无误。
答案 17 :(得分:0)
对于我在WebApi.config中添加以下几行,因为在更新新的nuget包之后无法正常工作
var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;
不要忘记添加命名空间:
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;
答案 18 :(得分:0)
就我而言,上述情况都没有,但用5.0.0.0替换5.2.3.0确实解决了这个问题。
答案 19 :(得分:0)
可能需要在属性对话框中将库引用设置为“Copy Local = True”。在visual studio上单击“references”,然后右键单击缺少的引用,从上下文菜单中单击属性,您应该看到copy local settings。