2

VS で dll ライブラリを参照しようとしましたが、以下のメッセージが表示され続けます: (ロードしようとしているアセンブリは、まったく参照していない古いバージョンです。しかし、まだどこかに保存されているため、新しいdllバージョン)

ファイルまたはアセンブリ '......、Version=......、Culture=neutral、PublicKeyToken=......' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

変更または削除できるように、バージョン番号、キートークンなどをどこで取得しますか?

4

1 に答える 1

2

コンパイラは、プロジェクトの参照ノードにある参照アセンブリから [AssemblyVersion] を取得します。実行時に明らかに、その DLL の別のバージョンが検出されます。

このように足を撃つ方法はそれほど多くありませんが、開発マシンでは、参照の Copy Local プロパティを True に設定することで、同じバージョンを確実に取得できます。CLR に別の場所を探すように意図的に指示する .config ファイルに注意してください。これがテスト マシンで発生する場合は、プロジェクトのデプロイ方法に問題があります。DLL がどこから来たのかわからない場合は、Fuslogvw.exe を使用してすべてのバインドをログに記録し、CLR が DLL を見つけた方法のトレースを取得します。

于 2012-09-20T17:12:09.203 に答える