[解決済み] .Netが間違った参照アセンブリのバージョンを選択する
質問
既存のプロジェクトを新しいマシンにコピーして開発を始めたところ、参照するアセンブリの1つ(たまたまTelerikのDLL)のバージョンで問題に遭遇しました。
プロジェクトはもともと古いバージョンのアセンブリを参照していました(v1.0.0.0とします)。 私の新しいマシンには最新バージョンのアセンブリがインストールされているので、それを更新しようと思いました(新しいバージョンを v2.0.0.0 と呼ぶことにします)。
ここで問題が発生します。古いv1.0.0.0のDLLをプロジェクトフォルダーにコピーして参照として追加すると、問題なくWebサイトが起動します。 その参照を削除し(システムから古いDLLも削除し)、新しいバージョン(v2.0.0.0)を追加すると、ページには次のような例外が表示されます。
ファイルまたはアセンブリをロードできませんでした 'XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4' or その依存物の1つです。配置された アセンブリのマニフェスト定義が は、アセンブリの参照と一致しません。 (HRESULT: 0x80131040 からの例外)
明らかに、このコードは古いバージョンを探しているのですが、見つけることができません。 しかし、なぜでしょうか?
ソリューションフォルダを検索してそのバージョン番号を探しましたが、1つも参照するものが見つかりませんでした。 .csprojファイルのテキストをダブルチェックしたところ、バージョンは正しく最新版を示し、HintPathは新しいDLLへのパスを正しく示していることがわかりました。 さらに、古いDLLをシステムにインストールしなかったため、GACに表示されません(ただし、v2.0.0.0は予想通り表示されます)。
そこで、フュージョンログビューアを有効にして、なぜその古いバージョンを探しているのかを調べてみましたが、うまくいきませんでした。
Assembly Load Trace: The following information can be helpful to determine why the assembly 'XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4' could not be loaded.
=== Pre-bind state information ===
LOG: User = MyComp\me
LOG: DisplayName = XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4
(Fully-specified)
LOG: Appbase = file:///d:/My Documents/Visual Studio 2010/Projects/CoolProj/WebApp/
LOG: Initial PrivatePath = d:\My Documents\Visual Studio 2010\Projects\CoolProj\WebApp\bin
Calling assembly : WebApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: d:\My Documents\Visual Studio 2010\Projects\CoolProj\WebApp\web.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: XXXXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/90233b18/10d54998/XXXXXX.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/90233b18/10d54998/XXXXXX/XXXXXX.DLL.
LOG: Attempting download of new URL file:///d:/My Documents/Visual Studio 2010/Projects/CoolProj/WebApp/bin/XXXXXX.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
その古いアセンブリを探すことから始めるとしか書かれていません。 ネットで解決策を探したところ、以下のようなものが見つかりました。 SO質問 しかし、それは私の問題とは正反対のようです。 その質問者のプログラムは、参照されるDLLではなく、間違ったDLLを見つけていたのです。 一方、私の問題は、正しいDLLがローカルにbinフォルダとGACで見つかるのに、プログラムが不思議なことに間違ったDLLを探し、見つけることができないことです。
なぜ私のは古いバージョンを探しているのですか? 他にどこを検索すれば、この悪い参照を見つけることができるのでしょうか?
解決方法は?
私の推測では、あなたが使用している別のアセンブリが古いDLLを参照していると思われます。使用されている他のプロジェクト参照をすべて把握し、その中にTelerikのDLLを参照しているものはありますか?
Web.config ファイルにこのようにバインディング・リダイレクトを入れることができますか?
<dependentAssembly>
<assemblyIdentity name="Telerik" publicKeyToken="121fae78165ba3d4"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
関連
-
NET6新機能 新構造体の最適化
-
認証プロセスの記録にjwtを使用したネット
-
Net CoreによるAutoFacの利用
-
[解決済み] Server Error in '/' Application」エラーの解決方法を教えてください。
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] Visual Studio使用時にファイルのビルドバージョンを自動的にインクリメントすることはできますか?
-
[解決済み] アセンブリ 'netstandard, Version=2.0.0.0' への参照を追加する必要があります。
-
[解決済み】ASP.NET web.config: configSourceとファイル属性の比較
-
[解決済み] ASP.Net MVCとWebフォームを比較する最大のメリット
-
[解決済み] Visual StudioのApp_Dataフォルダは何に使うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
.NET複数データベース一括データ挿入、更新(SqlServer、MySql、PgSql、Oracleをサポートします。)
-
[解決済み] 配置されたアセンブリのマニフェスト定義がアセンブリ参照と一致しない
-
403 - アクセス拒否。IIS7 でファイルを開くと、アクセス拒否されます。
-
[解決済み] System.Data.Entity.Internal.AppConfig' の型イニシャライザーで例外が発生しました。
-
[解決済み] web.configでmaxJsonLengthの長さを無制限に設定することは可能ですか?
-
[解決済み] カタナ」と「オウイン」をわかりやすく説明すると?
-
[解決済み] [Solved] ASP.NET MS11-100: 投稿されたフォームの値の最大数の制限を変更するにはどうしたらいいですか?
-
[解決済み] inheritInChildApplicationsを使用して子Webアプリケーションでweb.configの継承を回避する。
-
[解決済み] Visual Studio 新しいブラウザを開けない
-
[解決済み] フォーム認証のタイムアウトとsessionStateのタイムアウトの比較