この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 5752|答える: 3

[出典] [実用操作] リダイレクトに依存するDLLの異なるバージョンを参照することの矛盾

[リンクをコピー]
2022年10月22日 10:03:33に投稿 | | | |
要件:プロジェクトは多くのサードパーティSDKを参照する必要があり、その中にはよく使われるDLL(:Newtonsoft.Json.dllなど)を参照するものもあり、これによりプロジェクト全体が同じDLLの異なるバージョンを参照し、同じDLLコンパイル結果のファイルは1つだけ出力されます。

単純なDLLバージョン依存性の問題は以下に挙げられます:

.net/c# 参照 DLLバージョン 競合解決
https://www.itsvse.com/thread-4818-1-1.html
参考:ハイパーリンクのログインが見えます。

参照されているDLLが異なるバージョンであるだけでなく、publicKeyTokenのバージョンでもある場合、どのように解決すべきでしょうか? Newtonsoft.Json.dllの場合、プロジェクトは異なるバージョンとpublicKeyTokenを持つファイルを参照します。



- Newtonsoft.Json.dll,version:12.0.0.0,publicKeyToken:30ad4fe6b2aaaeed
- Newtonsoft.Json.dll,version:4.0.0.0,publicKeyToken:null

単純なリファレンスリダイレクト設定では問題は解決しません。構成は以下の通りです:

Newtonsoft.Jsonバージョン4.0.0.0に依存したサードパーティSDKメソッドを呼び出すと、以下のエラーが出ます:

ファイルまたはアセンブリ「Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null」またはその依存関係のいずれかを読み込みに失敗しました。 見つかったアセンブリマニフェストの定義はアセンブリ参照と一致しません。 (HRESULTの例外:0x80131040)
解決策:binディレクトリの下に新しいJSON4フォルダを作成し、Newtonsoft.Json.dll 4.0.0.0のバージョンをこのフォルダの下に配置し、以下のように設定を変更します:

(終わり)





先の:[実戦]。 NET/C#は MySqlBackup.NET に基づいてMySQLデータベースバックアップを実装しています
次に:【実践戦闘】ホームメディアドッカー用のサンダーダウンロードとDLNAサービスを構築
2022年10月22日 12:02:36に投稿 |
学ぶために
2022年10月24日 10:59:38に投稿 |
この方法は効果的で、4.0と6.0のNewtonsoft.Json.dllには気になります
2022年11月12日 13:08:42に投稿 |
学ぶために
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com