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



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

  • MongoDb驱动程序
  • MongoDb.Driver.Core
  • MongoDb

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

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

我来自Java世界,这让我今天一整天都被难住了。我尝试添加这里指定的所有依赖项,包括驱动程序本身的依赖项,但没有成功。

  • System.ComponentModel.TypeConverter(>=4.1.0(
  • System.Linq.Queryable(>=4.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中添加一行对应于Console应用程序:

我可以打开Framework项目的.csproj文件并添加第一行中的行,如下图所示,以更改还原样式:

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

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

希望这能帮到别人,节省别人的时间!

我遇到了同样的问题,通过右键单击项目并将Target框架从4.6更改为4.6.1来解决它,它起到了作用。

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

  • MongoDB。Bson.dll
  • MongoDB驱动程序.dll
  • MongoDB驱动程序.Core.dll

最新更新