无法加载文件或程序集 Microsoft.Bcl.AsyncInterfaces

问题描述 投票:0回答:11

由于 Microsoft.Bcl.AsyncInterfaces 问题,我无法使用 SqlType 提供程序。
我正在使用 .NET 4.7.2 和 F# 4.7.0.0 的最小程序。 我的 Nuget 包包含对以下内容的引用:

包id =“Microsoft.Bcl.AsyncInterfaces”版本=“1.0.0” 目标框架=“net472”

严重性代码描述项目文件行抑制状态 错误 FS3033 类型提供程序“FSharp.Data.Sql.SqlTypeProvider” 报告错误:无法加载一种或多种请求的类型。 检索 LoaderExceptions 属性以获取更多信息。细节: 无法加载文件或程序集“Microsoft.Bcl.AsyncInterfaces, 版本 = 1.0.0.0,文化 = 中性,PublicKeyToken = cc7b13ffcd2ddd51' 或 它的依赖项之一。 Das System 可以正常运行 芬登。 TestSqlProvider C:\Users\weism\source epos\TestSqlProvider\TestSqlProvider\Program.fs 9 活动

我可以做什么来解决这个问题?

f# type-providers
11个回答
41
投票

对我来说,安装 Microsoft.Bcl.AsyncInterfaces(Nuget 包)解决了这个问题。


14
投票

当您尝试在 dotnet core v3.1 项目中使用

Microsoft.EntityFrameworkCore
v5 时,也会发生此错误。 要解决此问题,请将版本
Microsoft.EntityFrameworkCore
降到最新的 v3 版本。


12
投票

对于.Net Core来说,当我们使用分层架构时,基本上都会出现这个问题。只需确保 Microsoft.EntityFrameworkCore 的版本在所有项目中都应相同,无论在何处使用。


5
投票

我在 .NET 4.8 项目中根本不使用 Microsoft.Bcl.AsyncInterfaces。某些库依赖于版本 1.0.0.0。我使用绑定重定向解决了该问题:

<dependentAssembly>
  <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>

Microsoft.Bcl.AsyncInterfaces.dll 5 在构建后被复制到Bin


3
投票

我认为你更新了一层包。 对我来说,我在具有三层(api、AdminTool、数据)的项目中工作,AdminTool层引用了数据层我只更新了AdminTool中的所有包,所以我遇到了这个错误我也在数据层和api层中更新了包所以问题解决了。 我希望对你有帮助。


0
投票

我的 Entity Framework Core 刚刚需要升级 到


0
投票

确保您拥有该 dll 的唯一单一版本。另一个步骤是在 app.config 中添加绑定重定向,如上面的评论所述。


0
投票

检查已安装的 nuget 软件包--- 如果 Microsoft.EntityFrameworkCore 的版本和您的 .net 项目不同,则可能会出现问题。 示例 - 如果 EntityFrameworkCore 版本为 v5.1.5 或更高版本且您的项目为 dotnet core v3.1 项目,则这可能是问题所在。

要解决,

  1. 将 Microsoft.EntityFrameworkCore 版本下调至项目的同等版本,例如 v3 版本。要降级版本,请单击 Visual Studio 中的工具 --> Nuget 包管理器 --> 管理解决方案的 Nuget 包 --> 单击已安装 ---> 选择要降级的 Nuget 包 --> 单击卸载,然后选择相同的 nuget 包,然后安装版本 3.1.5 或相关包。

  1. 安装 Microsoft.Bcl.AsyncInterfaces(Nuget 包)

0
投票

通过 NuGet 更新 Microsoft.Bcl.AsyncInterfaces 程序集完成了所需执行的所有操作,包括在相应的配置文件中添加

bindingRedirect
条目。

我还做了所有其他卫生工作。我清理了我的解决方案,删除了 bin 和 obj 目录条目,还清理了我的本地主机部署位置。

但是,我仍然遇到这个错误。我查看了输出(我的应用程序是 .NET 4.8 MVC Web 应用程序,因此网页详细显示了错误日志),我发现它在加载 SimpleInjector 时失败。

我通过 NuGet 将 SimpleInjector 更新到最新版本,这修复了我的错误。

不幸的是,我没有保留错误页面的副本,所以我无法向您展示我所看到的内容,但最重要的是详细检查输出或日志,看看是否可以找到应用程序正在尝试的位置加载失败的程序集,并更新似乎正在调用加载的程序集。


0
投票

我可以通过从 csproj 中删除

<Private>True</Private>
来修复它,以获得
Microsoft.Bcl.AsyncInterfaces
。只需重新安装此 NuGet 包即可


0
投票

我必须重新启动我的生产服务器,这也是我的几个网站的网络服务器等。 重新启动后,我现在遇到了一个新的不同错误

Error NU1301: Unable to load the service index for source...
NuGet 包管理真是一场噩梦。

© www.soinside.com 2019 - 2024. All rights reserved.