无法在 .Net 解决方案中加载程序集 System.Net.Http.Formatting

Can't load Assembly System.Net.Http.Formatting in .Net Solution

尝试在 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"/>

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

所以我的问题是我无法重新安装 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 但我的项目没有编译时,所有这些问题都出现了。

我就是这样解决问题的。我删除了 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,我的解决方案最初正在寻找并在找不到时抱怨。

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

清理你的项目并重建。