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");
完全なエラーメッセージ:
Mscorlib.dllで「System.IO.FileNotFoundException」タイプの未処理の例外が発生しました
追加情報:ファイルまたはアセンブリ「System.Runtime.InteropServices.RuntimeInformation、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」またはその依存関係の1つをロードできませんでした。システムは、指定されたファイルを見つけることができません。
不足しているパッケージをインストールします。 Package-installerを使用して、次のコマンドを発行します。Install-PackageSystem.Runtime.InteropServices.RuntimeInformation
ここでも同じ問題がありました。修正は非常に簡単です。構成ファイルを編集し、name属性が「System.Runtime.InteropServices.RuntimeInformation」であるノード「dependentAssembly」で、publicKeyToken属性を削除するだけです。
幸運を
私の場合、System.Runtime.InteropServices.RuntimeInformationが既にインストールされていますが、同じエラーが引き続き発生します。 4.0.0.0が見つからなかったことを訴えるか、app.configを4.3に更新した場合、4.3.0.0が欠落していると訴えました。
ただし、いくつかのパッケージをアンインストールして再インストールすると、動作を開始し、System.Runtime.InteropServices.RuntimeInformationのバージョン4.3がインストールされていても、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が機能するためには次のものが必要と思われます:
<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パッケージ/バージョンスタンプの問題かもしれません。
私の場合、パッケージはすでにインストールされています。ただし、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)でした。