【问题标题】:Could not load file or assembly 'System.Buffers, Version=4.0.2.0...'无法加载文件或程序集“System.Buffers,版本 = 4.0.2.0 ...”
【发布时间】:2020-11-11 02:31:09
【问题描述】:

在使用 VS config 添加新配置后尝试调用 MongoClient 类的 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 包 v4.5.1,在我的 app.config 中创建了dependentAssembly,并在我的 .csproj 文件中创建了 Reference,但我仍然遇到同样的问题。出于某种原因,它尝试使用 v4.0.2 引用 System.Buffer。有没有人遇到过类似的错误,你是怎么解决的?

【问题讨论】:

  • 你做了干净的构建吗?当 Net 更改时,obj 文件的依赖项不使用 Net 版本。所以你必须做一个干净的构建或删除项目的 bin 文件夹。还要检查 bin 文件夹中的最新 dll 是否在正确的文件夹中(调试/发布)。
  • 请尝试在CMD中输入System.Buffer nuget package v4.5.1(run as administrator.run cd xxxx(xxxx\packages\System.Buffers.4.5.0\lib\netstandard2.0),然后输入:gacutil /i System.Buffers.dll。可以参考this similar issue。完成后请运行update-package -reinstall在包管理器控制台下重新安装包。此外,您可以尝试在csproj文件中将Version=4.0.2.0更改为Version=4.0.3.0
  • 如果有帮助请告诉我们。
  • jdweng:当然。仍然看到同样的问题。
  • stackoverflow.com/users/12450747/perry-qian-msft 非常感谢!它对我有用。

标签: c# .net visual-studio reference nuget


【解决方案1】:

最简单的方法是使用 Nuget 包管理器,将 system.buffers 降级到任何较低版本,然后再次升级到最新版本。

【讨论】:

    【解决方案2】:

    无法加载文件或程序集“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重新安装包。

    2)您可以尝试在csproj文件中将Version=4.0.2.0改为Version=4.0.3.0

    另外还有a similar issue可以参考。

    【讨论】:

      【解决方案3】:

      另一种解决方案:只需在生成异常的项目的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>
      

      【讨论】:

        【解决方案4】:

        就我而言,我必须在已在 Azure 应用服务中发布的 web.config 中添加程序集引用,位于 &lt;configuration&gt;&lt;/configuration&gt; 标记内:

        <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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-15
          • 2020-05-09
          • 2018-10-04
          • 2013-11-14
          相关资源
          最近更新 更多