簡體   English   中英

無法加載文件或程序集“System.Buffers,版本 = 4.0.2.0 ...”

[英]Could not load file or assembly 'System.Buffers, Version=4.0.2.0...'

在使用 VS config 添加新配置后嘗試調用MongoClient class 的GetDatabase方法時出現以下異常。 經理:

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

我安裝了最新的 System.Buffer nuget package v4.5.1,在 my.csproj 文件中的 app.config 和 Reference 中創建了dependentAssembly,但我仍然遇到同樣的問題。 出於某種原因,它嘗試使用 v4.0.2 引用 System.Buffer。 有沒有人遇到過類似的錯誤,你是怎么解決的?

無法加載文件或程序集“System.Buffers,版本=4.0.2.0…”

解決方案

1)使用 CMD(以管理員身份運行)並輸入

 cd xxxx(xxxx\packages\System.Buffers.4.5.1\lib\netstandard2.0))

gacutil /i System.Buffers.dll

然后,完成后,請在package manager console下運行update-package -reinstall以重新安裝 package。

2)您可以嘗試在csproj文件Version=4.0.2.0更改為Version=4.0.3.0 4.0.3.0。

此外,您可以參考類似的問題

最簡單的方法是使用 Nuget package 管理器,將 system.buffers 降級到任何較低版本,然后再次升級到最新版本。

另一種解決方案:只需在生成異常的項目的Web.config文件中刪除對程序集的引用。

參考可能如下所示:

<dependentAssembly>
  <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.0.4.0" newVersion="4.0.4.0" />
</dependentAssembly>

就我而言,我必須在 Azure 應用服務中發布的 web.config 中添加程序集引用,在<configuration></configuration>標記內:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

我遇到了類似的問題,嘗試了上述所有步驟。 最后,另一個項目有同一個庫的舊版本。 解決方案中的項目太多,其他參考被滾動到視圖之外。

我在將Azure.Storage.Blobs package 添加到 Class 庫時遇到了這個問題,我試圖在其中創建 blob 上傳器客戶端。 當我添加 package 時,它創建了一個具有正確綁定重定向的app.config

      <dependentAssembly>
        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
      </dependentAssembly>
      <dependentAssembly>

然而,問題是這個綁定重定向需要存在於應用程序的app.config中,而不是 class 庫中: class 庫可以有一個 App.config 文件嗎?

因此,添加綁定重定向是解決此問題的正確方法。 只需確保在調用 web/console/etc 應用程序中指定了綁定重定向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM