web-dev-qa-db-fra.com

Le client MongoDB lève une exception FileNotFoundException dans mscorlib

J'utilise Visual Studio .NET 4.6 et Robomongo n'a pas de problème de connexion à ma base de données

Mes importations pour MongoDB

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

Le code qui s'exécute:

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

Le message d'erreur complet:

Une exception non gérée du type 'System.IO.FileNotFoundException' s'est produite dans mscorlib.dll

Informations complémentaires: Impossible de charger le fichier ou l'assembly 'System.Runtime.InteropServices.RuntimeInformation, Version = 4.0.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a 'ou l'un de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

14
HealdGuild

Installez le paquet manquant. En utilisant Package-Installer, lancez la commande suivante: Package d'installation System.Runtime.InteropServices.RuntimeInformation

13
user3096476

Dans mon cas, System.Runtime.InteropServices.RuntimeInformation était déjà installé sur mon ordinateur, mais il ne cessait de me donner la même erreur. En se plaignant que la version 4.0.0.0 n’ait pas été trouvée, ou si je mettais à jour le fichier app.config en 4.3, il se plaignait du fait que la version 4.3.0.0 était manquante.

Cependant, après la désinstallation et la réinstallation de plusieurs paquets, il a commencé à fonctionner et, même si la version 4.3 de System.Runtime.InteropServices.RuntimeInformation était installée, le fichier app.config devait être 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>

Je ne sais pas pourquoi, mais ça marche finalement pour moi.

7
Tim

J'ai eu le même problème ici. Le correctif est assez simple: éditez le fichier de configuration et sur le noeud "dependAssembly" où l'attribut name est "System.Runtime.InteropServices.RuntimeInformation", supprimez simplement l'attribut publicKeyToken.

Bonne chance

6
Galo Cego

Après de nombreuses expériences, il semble que web.config nécessite les éléments suivants pour fonctionner:

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

Quelles que soient les redirections proposées par NuGet, elles étaient incorrectes. Ce n'est peut-être pas un problème MongoDB en lui-même, peut-être un problème avec les packages/timbres de version de Microsoft Nuget.

3
Kunal

Dans mon cas, le paquet était déjà installé. Cependant, les versions du fichier web.config ne correspondaient pas. Une réinstallation du package a résolu le problème. Ouvrez votre console du gestionnaire de packages et tapez,

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

J'ai eu le même problème ici. Il a fallu quelques minutes pour découvrir que mon problème était le fait que j'avais mis à jour le paquet de nuget "System.Runtime.InteropServices.RuntimeInformation", et il semble que la référence de pilote de MongoDb csharp ait SpecificVersion = true.

Supprimez tous les packages de nuget et réinstallez-le, ou rétrogradez-le simplement dans la version où il est installé en tant que dépendance de pilote MongoDb.

Bonne chance!

0
ibirite

Cela semble dingue, mais ... j'ai eu ce problème dans Windows Server 2012 R2.

Seules les dernières mises à jour d'installation ont été utiles ... ". Il s'agissait de" Sécurité et cumul de la qualité 2018-12 pour .NET pour Windows ... "(KB4471989).

0
Vyacheslav Skripin