Dot-Net

Can’t load Assembly System.Net.Http.Formatting in .Net 解決方案

  • January 19, 2021

嘗試在 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文件中,包的版本是 5.2.3 System.Net.Http.Formatting

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

在引用的屬性中,版本是 4.1.1.2,執行時版本是 v4.0.30319,用於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

然後我解除安裝了包Microsoft.AspNet.WebApi.WebHostMicrosoft.AspNet.WebApi.CoreMicrosoft.AspNet.WebApi.Client使用了 NuGet。

然後我使用 NuGet 重新安裝了包,但我沒有重新安裝System.Net.Http.Formatting包。

最初需要它的依賴程式碼現在是Microsoft.AspNet.WebApi.Client. 它安裝了System.Net.Http.Formatting我的解決方案最初尋找的軟體包和 5.2.6 版本,並在找不到它時抱怨。

引用自:https://stackoverflow.com/questions/51433419