.NetStandard 2.0,MongoDB驱动程序:MongoDB.Bson的FileNotFoundException

时间:2018-11-30 22:19:55

标签: c# mongodb

我已经使用.Net Standard 2.0创建了一个新项目,该项目具有以下依赖性:

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

但是,当我运行程序时,出现以下错误:

  

未处理的异常:System.IO.FileNotFoundException:Coult无法加载文件或程序集“ MongoDB.Bson,版本= 2.7.2.0,文化=中性,PublicKeyToken =空”或其依赖项之一。系统找不到指定的文件。

我来自Java世界,这使我今天整整陷入困境。我尝试添加指定的所有here依赖关系,包括驱动程序本身的依赖关系,没有任何运气。

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

我在做什么错了?

3 个答案:

答案 0 :(得分: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中添加一行:

  

我可以打开Framework项目的.csproj文件并将其添加   在第一个这样的行内更改恢复   风格:

     

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

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

希望这会有所帮助,并节省其他人的时间!

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我遇到了同样的问题,并通过右键单击该项目并将Target框架从4.6更改为4.6.1进行了修复。