MongoDB 客户端在 mscorlib 中抛出 FileNotFoundException

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

我正在使用 Visual Studio .NET 4.6 并且 Robomongo 连接到我的数据库没有问题

我对 MongoDB

的导入
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using MongoDB.Bson;

正在执行的代码:

MongoClient client = new MongoClient("mongodb://localhost");
MongoServer server = client.GetServer();
MongoDatabase mongoDatabase = server.GetDatabase("GameCollection");

完整的错误消息:

“System.IO.FileNotFoundException”类型的未处理异常 发生在 mscorlib.dll 中

附加信息:无法加载文件或程序集 'System.Runtime.InteropServices.RuntimeInformation,版本=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其之一 依赖关系。系统找不到指定的文件。

c# mongodb database nosql
7个回答
17
投票

我这里也遇到同样的问题。修复方法非常简单:编辑配置文件。在

dependentAssembly
属性为
name
的节点
"System.Runtime.InteropServices.RuntimeInformation"
上,只需删除
publicKeyToken
属性即可。


14
投票

安装缺少的软件包。使用软件包安装程序,发出以下命令: 安装包 System.Runtime.InteropServices.RuntimeInformation


6
投票

经过多次实验,似乎 web.config 需要以下内容才能工作:

<dependentAssembly>
   <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
   <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
   <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
   <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>

NuGet 放置的任何重定向都是不正确的。这本身可能不是 MongoDB 问题,可能是 Microsoft Nuget 包/版本标记的问题。


6
投票

就我而言,我已经安装了 System.Runtime.InteropServices.RuntimeInformation,但它一直给我同样的错误。要么抱怨找不到 4.0.0.0,要么如果我将 app.config 更新到 4.3,它就会抱怨缺少 4.3.0.0。

但是,在卸载并重新安装几个软件包后,它开始工作,即使安装了 4.3 版的 System.Runtime.InteropServices.RuntimeInformation,它也要求 app.config 具有 4.0.1.0

<dependentAssembly>
    <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
  </dependentAssembly>

我不知道为什么,但它终于对我有用了。


4
投票

就我而言,该软件包已经安装。但是,

web.config
文件中的版本不匹配。重新安装该软件包解决了该问题。打开包管理器控制台并输入,

Update-Package System.Runtime.InteropServices.RuntimeInformation -Reinstall

0
投票

我这里也遇到同样的问题。花了几分钟才发现我的问题是我更新了 nuget 包“System.Runtime.InteropServices.RuntimeInformation”,并且似乎 MongoDb csharp 的驱动程序参考具有 SpecificVersion = true。

删除所有 nuget 包并再次安装,或者将其降级到作为 MongoDb 驱动程序依赖项安装的版本。

祝你好运!


0
投票

看起来很疯狂,但是。 我在 Windows Server 2012 R2 中遇到了这个问题。

只有安装最新更新才有帮助。 这是“2018 年 12 月 Windows 版 .NET 安全和质量汇总...”(KB4471989)。

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