无法在.Net解决方案中加载Assembly System.Net.Http.Formatting

时间:2018-07-20 00:15:43

标签: .net nuget package .net-assembly

尝试在NuGet控制台上更新软件包时收到以下错误:

At line:1 char:1
+ Update-Package Microsoft.AspNet.WebApi -reinstall
+ CategoryInfo          : InvalidOperation: (:) [Update-Package], 
InvalidOperationException
+ FullyQualifiedErrorId :     
NuGetMissingPackages, 
NuGet.PackageManagement.PowerShellCmdlets.UpdatePackageCommand

当我尝试安装NuGet.PackageManagement.PowerShellCmdlets时收到错误消息:

An error occured while trying to restore packages:Unable to find version '5.2.3' of package 'System.Net.Http.Formatting'.

在.csproj文件中,System.Net.Http.Formatting的版本为5.2.3

<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\System.Net.Http.Formatting.Extension.5.2.3.0\lib\System.Net.Http.Formatting.dll</HintPath>
</Reference>

...并且在packages.config文件中,软件包System.Net.Http.Formatting的版本为5.2.3:

<package id="System.Net.Http.Formatting" version="5.2.3" targetFramework="net461"/>

在引用的属性中,对于System.Net.Http.Formatting,版本是4.1.1.2,运行时版本是v4.0.30319。

所以我的问题是我无法重新安装System.Net.Http.Formatting,因为它显然已经成为Microsoft.AspNet.WebApi的一部分,并且当我尝试安装它时,出现了原始错误。我绕圈转。 如果我只按原样运行项目,则编译后会出现运行时错误:

Could not load file or assembly 'System.Net.Http.Formatting, Version=5.2.6.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 
The located assembly's manifest definition does not match the assembly 
reference. (Exception from HRESULT: 0x80131040)'

从哪里获得此版本5.2.6.0?如果是依赖项,那么我需要重新安装,但我不能。

我对软件包和NuGet缺乏经验。当同事更新一些软件包并将这些更改放入git时,所有这些问题出现了,但是我的项目没有编译。

2 个答案:

答案 0 :(得分:9)

这就是我解决问题的方式。我删除了DLL System.Net.Http.Formatting。我确保已从.csproj文件和packages.config文件中将其删除。

然后我使用NuGet卸载了软件包Microsoft.AspNet.WebApi.WebHostMicrosoft.AspNet.WebApi.CoreMicrosoft.AspNet.WebApi.Client

然后,我使用NuGet重新安装了软件包,但没有重新安装System.Net.Http.Formatting软件包。

最初需要它的从属代码现在位于Microsoft.AspNet.WebApi.Client的一部分中。它安装了System.Net.Http.Formatting软件包和我的解决方案最初寻找的版本5.2.6,并抱怨何时找不到它。

答案 1 :(得分:3)

我只需要将 NuGet 中的 Microsoft.AspNet.WebApi.Client 更新到最新版本 5.2.7,System.Net.Http.Formatting 也会更新。

清理您的项目并重建。