C# 无法加载文件或程序集';System.Net.Http.Formatting';或者它的一个依赖项。系统找不到指定的路径
我有一个用于实践的小型MVC应用程序,但现在每次尝试调试时都会遇到错误:C# 无法加载文件或程序集';System.Net.Http.Formatting';或者它的一个依赖项。系统找不到指定的路径,c#,asp.net,.net,asp.net-mvc-4,C#,Asp.net,.net,Asp.net Mvc 4,我有一个用于实践的小型MVC应用程序,但现在每次尝试调试时都会遇到错误: Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies. The system cannot find the path specified. 我在谷歌上搜索过,但找不到解决办法。我正在使用.NET4.5 它不能是DLL文件,因为我使用的是.Net 4.5。每当我出现如下NuGet错误时,我通常会采取
Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies.
The system cannot find the path specified.
我在谷歌上搜索过,但找不到解决办法。我正在使用.NET4.5
它不能是DLL文件,因为我使用的是.Net 4.5。每当我出现如下NuGet错误时,我通常会采取以下步骤:
编辑>>> 对于Visual Studio 2013及更高版本,步骤2)应为:
- 删除对
System.Net.*
- 在package窗口中
安装软件包Microsoft.AspNet.WebApi.Client
- 清理并重建项目
- 我找到了一个额外的
<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中。移除它以使其工作。我安装了一些其他软件包,然后又删除了这些软件包,导致了这个问题。从
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>
您可能需要在“属性”对话框中将库引用设置为“Copy Local=True”。在visual studio上单击“引用”,然后右键单击缺少的引用,从关联菜单中单击“属性”,您应该会看到“复制本地设置”。user3919888为我指明了正确的方向,但我需要在Package Manager控制台中运行更新包-重新安装Microsoft.AspNet.WebApi.Client
。“基本安装”本身无法识别问题,但可以识别软件包已安装,并且不会覆盖它
我之所以发布这个答案,是因为这种情况很少发生,以至于我在记起上次所做的事情之前就在谷歌上搜索并到达了这个页面。正如我在一篇评论中最初所建议的那样,并记录在以下内容中,当其他答案都不起作用时,我的做法对我有效: 工具/NuGet软件包管理器/软件包管理器控制台
Update-Package -ProjectName MyProjectName -reinstall
对我来说,这很简单
对我来说,解决这个恼人错误的方法就是关闭VisualStudio并再次打开它。然后重新构建解决方案,一切又重新开始。很抱歉这个糟糕的答案,但我认为它值得一个答案,因为它为我解决了这个问题 在我的情况下,上述解决方案都不起作用。我通过右键单击引用解决了这个问题 System.Net.Http.xml格式 从Visual studio中,将属性复制本地设置为真
我希望这是有用的 在我的例子中,上述所有方法都不起作用,但是,用4.0.0.0替换5.2.3.0确实解决了问题
System.Net.*
Microsoft.AspNet.WebApi
及其依赖项Microsoft.AspNet.WebApi
及其依赖项李>
对我来说,在WebApi.config中添加几行代码是可行的,因为在更新新的nuget包之后并没有成功
var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;
不要忘记添加命名空间:
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;
我也面临同样的问题,因为 System.Net.Http.xml格式 webconfig中写入的版本为5.0.3,但在bin文件夹中,library System.Net.Http.Formatting dll的版本为4.0.2 所以我只是换成了同样的垃圾桶
只要做这个干净的项目并构建我为解决这个问题所做的就是
对于那些结合使用.NET Standard项目和.NET Framework项目的用户: 以.NET标准方式,.NET标准项目中包含的包将正确地用于其他.NET核心和.NET标准项目 在.NET Framework方式下,如果您引用的是.NET Framework(MVC)项目中的.NET标准项目,则需要手动下载并安装相同的nuget软件包 因此,我的问题的答案是,我必须在web项目(.NET Framework)中下载并安装
Microsoft.AspNet.WebApi.Client
,该web项目使用的是.NET标准项目,其中需要Microsoft.AspNet.WebApi.Client
。事实上,我已经安装了这个,但是版本不同
我只是添加了这个答案让其他人看,它可能不会直接回答OP的问题,但它确实节省了我的时间,首先检查这个,而不是做顶部-
<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>