問題タブ [fileloadexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - json.net (Newtonsoft.Json) ランタイム ファイルの読み込み例外を修正する方法
プロジェクトを実行するたびに、次の例外が発生します。
タイプ 'System.IO.FileLoadException' の例外が mscorlib.dll で発生しましたが、ユーザー コードで処理されませんでした' またはその依存関係の 1 つ。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
Web で見つけられるほぼすべてのソリューションを試しました。
私のpackages.configファイル:
次のコマンドを使用して、json.netを更新/再インストールしました。
他に何を試すことができますか?
dll - System.Net.Http NuGet パッケージ 4.3.0 リファレンスが、System.Diagnostics.DiagnosticSource バージョン 4.0.0.0 リファレンスで System.IO.FileLoadException を生成する
問題の説明:
共有ライブラリ「shared.dll」プロジェクトは、System.Net.Http NuGet パッケージ 4.3.0 を参照します。「shared.dll」を参照するアプリケーションが失敗する
System.IO.FileLoadException
ファイルまたはアセンブリ 'System.Diagnostics.DiagnosticSource、Version=4.0.0.0、Culture=neutral、PublicKeyToken=cc7b13ffcd2ddd51' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
System.Net.Http.WinHttpHandler.SendAsync(...) で
この問題を調査した結果、上記の失敗の原因として次のことがわかりました。
- System.Net.Http v 4.3.0のパッケージ情報ページには、 System.Diagnostics.DiagnosticSource v 4.3.0以降への依存関係が記載されています。このパッケージは、プロジェクトから System.Net.Http v 4.3.0 が参照されると、自動的にダウンロードされます。
- 実際、System.Net.Http v 4.3.0 の NuGet パッケージには、System.Net.Http.dll v 4.1.1.0 が含まれています (2017 年 1 月 8 日現在)。
- System.Diagnostics.DiagnosticSource v 4.3.0 の NuGet パッケージには、実際には System.Diagnostics.DiagnosticSource v 4.0.1.0 が含まれています (2017 年 1 月 8 日現在)。
- System.Net.Http バージョン 4.1.1.0 は、System.Diagnostics.DiagnosticSource v. 4.0.0.0 を参照します。
- System.Diagnostics.DiagnosticSource v. 4.0.0.0 は、v ダウンロードした dll v 4.0.1.0 と完全に一致しません。
- 厳密に名前が付けられたライブラリ参照のバージョンが完全に一致しない場合でも、.NET ランタイムは参照されているアセンブリを見つけようとします。できない場合: ライブラリ ロード例外が生成されます。次のコメントも参照してください
いくつかの回避策があります。
- app.config オプション:アプリケーションを参照している "shared.dll"の app.configでバインディング リダイレクトを使用して、互換性のあるバージョンを宣言します (どこまでやればよいでしょうか?)。
- System.Diagnostics.DiagnosticSource.dll を強制的にバージョン 4.0.0.0 にする: System.Diagnostics.DiagnosticSource v. 4.0.0.0 への NuGet 参照を、System.Net.Http を参照するプロジェクトに追加して、dll バージョン 4.0.1.0 の自動ダウンロードを回避します。このオプションでは、NuGet 依存関係を自動的に更新する機能が失われますが、アプリケーションの展開は構成なしになります。
適切な問題の解決策は、パッケージの所有者による前述の NuGet パッケージの不一致を修正することにあるというしつこい気持ちがあります。ソースで修正すると、コードを消費する System.Net.Http パッケージの回避策は必要ありません。
質問:
- 以前の正確なバージョンのパッケージ 4.1.1 があるのに、System.Net.Http v 4.3.0 パッケージに不一致の System.Net.Http.dll v 4.1.1 が含まれているのはなぜですか?
- 上記の 2 つの回避策のいずれかを使用する必要がありますか?
- どちらの方がよいですか?
- または: 問題に対する別の解決策はありますか?
- または: 不整合を修正する NuGet パッケージへの差し迫った更新はありますか?
ありがとう。
exception - コンソール アプリとして実行すると、「ファイルまたはアセンブリを読み込めませんでした」という例外が発生する
新しい .NET Core 2.0 コンソール アプリがあります。たとえば Newtonsoft.Json などの NuGet パッケージを追加しようとすると、プログラムの開始時に次の例外が発生します。
System.IO.FileLoadException: 'ファイルまたはアセンブリ 'System.Threading、Version=4.1.0.0、Culture=neutral、PublicKeyToken=b03f5f7f11d50a3a' を読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)」
これはSystem.Console.ReadLine()で何らかの形で発生し、Newtonsoft.Json パッケージを削除すると、すべてが再び機能します。さて、Newtonsoft.Json は単なる例でした。System.Data.SqlClient を追加すると、同じことが起こります。上記の例外に記載されているものとは異なるアセンブリをロードできない場合がありました。
プロジェクトを含めました。また、新しい .NET Core 2.0 コンソール アプリを何度も作成して、プロジェクトが何らかの理由で破損していないかどうかを確認したため、この問題を簡単に再現できます。
私のプロジェクト (Visual Studio プレビューで最後に実行): https://ufile.io/yp9xd
編集 1: Visual Studio 2017 を再インストールしましたが、現在は非プレビューのみを実行しています。また、.NET Core 2.0 を再インストールし、NuGet キャッシュをクリアしました。これはすべて勝ちません。同じ結果が私を嘲笑し続けています。
編集 2: 問題の原因を突き止めました。相互参照: https://github.com/JamesNK/Newtonsoft.Json/issues/1423
python - ファイルパスの問題
次のパスからファイルをロードしようとしています。
ただし、ファイルがロードされていません。ファイルを 1 レベル上に移動し、パスを
ロードします。
唯一の違いは、S13893フォルダーです。
次のコードがあります。
どんな助けでも素晴らしいでしょう。