我出于实践原因使用了一个小型MVC应用程序,但是现在每次尝试调试时都会遇到错误:
Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies.
The system cannot find the path specified.
我已经用Google搜索,但是找不到解决方案。我正在使用.NET 4.5。
它不能是DLL文件,因为我正在使用.Net 4.5。
我出于实践原因使用了一个小型MVC应用程序,但是现在每次尝试调试时都会遇到错误:
Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies.
The system cannot find the path specified.
我已经用Google搜索,但是找不到解决方案。我正在使用.NET 4.5。
它不能是DLL文件,因为我正在使用.Net 4.5。
Answers:
每当遇到诸如此类的NuGet错误时,我通常都会采取以下步骤:
采取所有这些步骤几乎总是会还原我的MVC程序所需的所有软件包和dll。
编辑>>>
对于Visual Studio 2013及更高版本,步骤2)应显示为:
删除所有对以下代码的引用 System.Net.*
在包裹窗口中
Install-Package Microsoft.AspNet.WebApi.Client
清理并重建您的项目
Web.Config
bindingRedirect
的 System.Net.Http.Formatting
和System.Web.Http
新的一个通过上面的命令安装...即从去<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
到<bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
我发现了一个额外的
<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>
对于将.NET Standard项目与.NET Framework项目结合使用的用户:
以.NET Standard项目的方式,.NET Standard项目中包含的软件包将在其他.NET Core和.NET Standard项目中正确使用。
以.NET Framework的方式,如果要从.NET Framework(MVC)项目引用.NET Standard项目,则需要手动下载并安装相同的nuget包。
因此,对于我的问题的答案是,我必须Microsoft.AspNet.WebApi.Client
在Microsoft.AspNet.WebApi.Client
需要使用.NET Standard项目的Web项目(.NET Framework)中下载并安装。实际上,我已经安装了此版本,但是存在版本差异。
我只是添加此答案供其他人查看,它可能不会直接回答OP的问题,但是通过先检查此问题而不是进行投票最多的答案,确实节省了我的时间。
System.Net.*
Microsoft.AspNet.WebApi
及其依赖项。Microsoft.AspNet.WebApi
及其依赖项。就我而言,以上解决方案均无效。我通过右键单击参考来解决
System.Net.Http.Formatting
从Visual Studio中并将属性“ 复制本地”设置为true。
我希望这是有用的。
对我来说解决这个烦人的错误的原因只是关闭Visual Studio,然后再次打开它。然后重新构建解决方案,然后一切又重新开始。抱歉,我的回答很糟糕,但是我认为这是一个值得的答案,因为它为我解决了。
就我而言,上述方法均无效,但是,用4.0.0.0代替5.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;
我在VS 2019中遇到了ASP.NET项目的问题。
另一个症状是,在项目引用列表(Solution Explorer)中某些引用(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>