无法加载文件或程序集“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错误,我通常采取这些步骤:
- 转到Windows资源pipe理器中的软件包文件夹并将其删除。
- 打开Visual Studio并转到工具 > 库包pipe理器 > 程序包pipe理器设置 ,在左侧的包pipe理器项下,有一个“清除包caching”button。 单击此button并确保选中“允许NuGet在构build期间下载缺失的软件包”checkbox。
- 清理解决scheme
- 然后右键单击Solution Explorer中的解决scheme并启用NuGet Package Restore
- build立解决scheme
采取所有这些步骤几乎总是恢复所有的包和DLL我需要我的MVC程序。
编辑>>>
对于Visual Studio 2013及更高版本,步骤2)应为:
- 打开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 。
我希望这是有用的。
- 删除所有对System.Net的代码引用。*
- 卸载:打包Microsoft.AspNet.WebApi及其依赖。
- 重新安装所有:打包Microsoft.AspNet.WebApi及其依赖。
- 清理并重build您的项目
对我来说,这很简单
- 从Windows资源pipe理器的packages文件夹中删除
Microsoft.AspNet.WebApi.Client
- 打开工具> NuGet程序包pipe理器>程序包pipe理器控制台
- 点击“恢复”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;