无法加载文件或程序集 Microsoft.Bcl.AsyncInterfaces 的解决方案

报错的具体关键文本如下:

无法加载文件或程序集“Microsoft.Bcl.AsyncInterfaces、Version=6.0.0.0、Culture=neutral、PublicKeyToken=XX”或其依赖项之一

过程回顾:

我新建了一个.net framework web项目,这个项目需要用到另外两个库,待我从nuget上获取了这两个库后,整个程序编译没有问题,但一运行就出现了如上的报错,明显这是整个项目所依赖的库缺失了,检查发现我本机的Microsoft.Bcl.AsyncInterfaces,其Version=9.0.0.0,于是将其降级到6.0.0.0,但这个时候又出现问题了,system.memory的版本号必须为4.0.1.0,我全网找了下,根本没有这个版本,所以想把各个库的版本全部统一,这事儿无法实现。

于是我们开始了另外一条路,就是用现有版本来代替所需版本。具体操作是修改web.config里的内容,修改片段如下:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
      </dependentAssembly>   
    </assemblyBinding>
  </runtime>

做完如上操作后,再次编译运行,成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值