wake-up-neo.net

Der MongoDB-Client löst eine FileNotFoundException in mscorlib aus

Ich verwende Visual Studio .NET 4.6 und Robomongo hat keine Probleme, eine Verbindung zu meiner Datenbank herzustellen

Meine Importe für MongoDB

using MongoDB.Driver;
using MongoDB.Driver.Builders;
using MongoDB.Bson;

Der Code, der ausgeführt wird:

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

Die vollständige Fehlermeldung:

Eine nicht behandelte Ausnahme des Typs 'System.IO.FileNotFoundException' trat in mscorlib.dll auf

Zusätzliche Informationen: Datei oder Assembly konnte nicht geladen werden 'System.Runtime.InteropServices.RuntimeInformation, Version = 4.0.0.0, Kultur = neutral, PublicKeyToken = b03f5f7f11d50a3a 'oder einer seiner Abhängigkeiten. Die angegebene Datei wurde vom System nicht gefunden.

14
HealdGuild

Installieren Sie das fehlende Paket. Geben Sie mit Package-Installer den folgenden Befehl ein: Installationspaket System.Runtime.InteropServices.RuntimeInformation

13
user3096476

In meinem Fall hatte ich bereits System.Runtime.InteropServices.RuntimeInformation installiert, wobei mir immer wieder derselbe Fehler angezeigt wurde. Entweder wurde beschwert, dass 4.0.0.0 nicht gefunden wurde, oder wenn ich die app.config auf 4.3 aktualisiere, beklagte es sich, dass 4.3.0.0 fehlte.

Nach dem Deinstallieren und erneuten Installieren mehrerer Pakete funktionierte das Programm jedoch, und obwohl Version 4.3 der System.Runtime.InteropServices.RuntimeInformation installiert war, musste für app.config 4.0.1.0 installiert sein

<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>

Ich habe keine Ahnung warum, aber es funktioniert endlich bei mir.

7
Tim

Ich hatte hier das gleiche Problem. Das Update ist ziemlich einfach: Bearbeiten Sie die Konfigurationsdatei, und bearbeiten Sie auf dem Knoten "abhängigeAssembly" das Attribut "System.Runtime.InteropServices.RuntimeInformation". Entfernen Sie einfach das Attribut publicKeyToken.

Viel Glück

6
Galo Cego

Nach langem Experimentieren scheint es, dass web.config Folgendes braucht, um zu funktionieren:

<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>

Was auch immer Weiterleitungen von NuGet dort waren, waren falsch. Dies ist möglicherweise kein MongoDB-Problem an sich, möglicherweise ein Problem mit Microsoft Nuget-Paketen/Versionsstempeln.

3
Kunal

In meinem Fall war das Paket bereits installiert. In der web.config-Datei stimmen jedoch die Versionen nicht überein. Durch eine Neuinstallation des Pakets wurde das Problem behoben. Öffnen Sie die Package Manager Console und geben Sie Folgendes ein:

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

Ich hatte hier das gleiche Problem. Es dauerte einige Minuten, bis ich herausfand, dass mein Problem darin bestand, dass ich das Nuget-Paket "System.Runtime.InteropServices.RuntimeInformation" aktualisiert habe, und es scheint, dass die Treiberreferenz von MongoDb csharp SpecificVersion = true hat.

Entfernen Sie alle Nuget-Pakete, und installieren Sie sie erneut, oder führen Sie einfach ein Downgrade auf dieselbe Version durch, die als MongoDb-Treiberabhängigkeit installiert ist.

Viel Glück!

0
ibirite

Es sieht verrückt aus, aber ... Ich habe dieses Problem in Windows Server 2012 R2 bekommen.

Nur die neuesten Updates für die Installation haben geholfen. Es war "2018-12 Sicherheit und Qualitäts-Rollup für .NET für Windows ..." (KB4471989).

0