【问题标题】:.NetStandard 2.0, MongoDB Driver: FileNotFoundException for MongoDB.Bson.NetStandard 2.0,MongoDB 驱动程序:MongoDB.Bson 的 FileNotFoundException
【发布时间】:2026-02-15 17:55:01
【问题描述】:

我使用 .Net Standard 2.0 创建了一个具有以下依赖项的新项目:

  • MongoDb.Driver
  • MongoDb.Driver.Core
  • MongoDb.Bson

但是,当我运行我的程序时,我收到以下错误:

未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“MongoDB.Bson,Version=2.7.2.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。

我来自 Java 世界,这让我今天一整天都难过。我已经尝试添加指定的所有依赖项here,包括驱动程序本身的依赖项,但没有任何运气。

  • System.ComponentModel.TypeConverter (>= 4.1.0)
  • System.Linq.Queryable (>= 4.0.1)

我做错了什么?

【问题讨论】:

  • 你运气好吗?在这里遇到同样的问题。谢谢

标签: c# mongodb


【解决方案1】:

我创建了一个针对 .NET Standard 2.0 的库,它使用了 mongocsharpdriver 包,以及另一个使用该库(控制台应用程序)的 .NET framework 4.6.1 项目。

构建没问题,但是运行时出现 FileNotFoundException。

这个帖子https://github.com/dotnet/standard/issues/410 和这篇文章都对https://www.hanselman.com/blog/ReferencingNETStandardAssembliesFromBothNETCoreAndNETFramework.aspx 的问题有所了解

基本上解决方案是在csproj中添加一行与Console应用程序对应的:

我可以打开框架项目的 .csproj 文件并添加它 像这样在第一行内更改还原 风格:

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

再次构建后,MongoDB.*.dll 文件被复制到输出文件夹。

希望这有助于并节省其他人的时间!

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,并通过右键单击项目并将目标框架从 4.6 更改为 4.6.1 来修复它,它可以工作。

    【讨论】:

    • 从 4.5 更改为 4.6 或 4.6.1 对我有用
    【解决方案3】:

    我遇到了同样的问题,在我添加了这些依赖项后,我的问题得到了解决。

    • MongoDB.Bson.dll
    • MongoDB.Driver.dll
    • MongoDB.Driver.Core.dll

    【讨论】: