无法加载文件或程序集“System.Net.Http.Formatting”或其依赖项之一。 该系统找不到指定的path

我有一个小的MVC应用程序,我用于实践的原因,但现在我每次尝试debugging时遇到一个错误:

Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies. The system cannot find the path specified. 

我GOOGLE了,但找不到解决scheme。 我正在使用.NET 4.5。

它不能是DLL文件,因为我正在使用.Net 4.5。

每当我有这样的NuGet错误,我通常采取这些步骤:

  1. 转到Windows资源pipe理器中的软件包文件夹并将其删除。
  2. 打开Visual Studio并转到工具 > 库包pipe理器 > 程序包pipe理器设置 ,在左侧的包pipe理器项下,有一个“清除包caching”button。 单击此button并确保选中“允许NuGet在构build期间下载缺失的软件包”checkbox。
  3. 清理解决scheme
  4. 然后右键单击Solution Explorer中的解决scheme并启用NuGet Package Restore
  5. build立解决scheme

采取所有这些步骤几乎总是恢复所有的包和DLL我需要我的MVC程序。


编辑>>>

对于Visual Studio 2013及更高版本,步骤2)应为:

  1. 打开Visual Studio并转到工具 > 选项 > NuGet包pipe理器 ,在右侧有一个“清除包cachingbutton”。 单击此button并确保选中“允许NuGet下载缺less的软件包”和“在Visual Studio中自动检查缺less的软件包”checkbox。
  • 删除所有对System.Net.*代码引用System.Net.*

  • 在包窗口中,

    Install-Package Microsoft.AspNet.WebApi.Client

  • 清理并重build您的项目

我发现了一个额外的

  <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组件。 所以对于其他人来说这个解决scheme可能无法按预期工

  <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> 

user3919888指出我在正确的方向,但我需要在Package-Manager控制台中运行Update-Package -reinstall Microsoft.AspNet.WebApi.Client 。 基本安装本身并不能识别这个问题,但确实知道这个软件包已经安装了,并且不会覆盖它。

我正在发布这个答案,因为这种情况发生得很less,所以我在记得上次我做了什么之前,最终以googlesearch到达了这个页面。

正如GeoMac发表评论最初所build议的,在NuGet的文档中logging下来,当其他答案都没有工作的时候,

工具/ NuGet程序包pipe理器/程序包pipe理器控制台

 Update-Package -ProjectName MyProjectName -reinstall 

在我的情况下,上述解决scheme都没有工作。 我通过右键点击参考来解决

System.Net.Http.Formatting

从Visual Studio中将属性Copy Local设置为true

我希望这是有用的。

  1. 删除所有对System.Net的代码引用。*
  2. 卸载:打包Microsoft.AspNet.WebApi及其依赖。
  3. 重新安装所有:打包Microsoft.AspNet.WebApi及其依赖。
  4. 清理并重build您的项目

对我来说,这很简单

  1. 从Windows资源pipe理器的packages文件夹中删除Microsoft.AspNet.WebApi.Client
  2. 打开工具> NuGet程序包pipe理器>程序包pipe理器控制台
  3. 点击“恢复”button

什么解决了这个恼人的错误,我只是closuresVisual Studio并再次打开它。 然后重build解决scheme,这一切都再次工作。 对不起,废话的答案,但我认为这是值得的答案,因为它解决了我。

可能需要在属性对话框中将库引用设置为“Copy Local = True”。 在visual studio上点击“引用”,然后右键点击缺less的引用,从上下文菜单中点击属性,你会看到复制本地设置。

就我而言,以上都没有工作,但是用4.0.0.0replace5.2.3.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;