我正在使用 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' 或其之一 依赖关系。系统找不到指定的文件。
我这里也遇到同样的问题。修复方法非常简单:编辑配置文件。在
dependentAssembly
属性为 name
的节点 "System.Runtime.InteropServices.RuntimeInformation"
上,只需删除 publicKeyToken
属性即可。
安装缺少的软件包。使用软件包安装程序,发出以下命令: 安装包 System.Runtime.InteropServices.RuntimeInformation
经过多次实验,似乎 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 包/版本标记的问题。
就我而言,我已经安装了 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>
我不知道为什么,但它终于对我有用了。
就我而言,该软件包已经安装。但是,
web.config
文件中的版本不匹配。重新安装该软件包解决了该问题。打开包管理器控制台并输入,
Update-Package System.Runtime.InteropServices.RuntimeInformation -Reinstall
我这里也遇到同样的问题。花了几分钟才发现我的问题是我更新了 nuget 包“System.Runtime.InteropServices.RuntimeInformation”,并且似乎 MongoDb csharp 的驱动程序参考具有 SpecificVersion = true。
删除所有 nuget 包并再次安装,或者将其降级到作为 MongoDb 驱动程序依赖项安装的版本。
祝你好运!
看起来很疯狂,但是。 我在 Windows Server 2012 R2 中遇到了这个问题。
只有安装最新更新才有帮助。 这是“2018 年 12 月 Windows 版 .NET 安全和质量汇总...”(KB4471989)。