0

設定:

EF 4.1 で動作する別のアプリのコピーであるアプリがあります。新しいアプリでは、ドメイン プロジェクトに EF 4.3.1 への nuget パッケージ参照を追加しました。

ローカル マシンではすべて動作しますが、サーバーでは次のエラーがスローされます。

Could not load file or assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

明らかに、何かがまだ古いエンティティ フレームワーク 4.1 を参照していますが、見つかった dll は EF 4.3.1 dll だけです。

web.config には EntityFramework への参照はありません。

質問:

まだ古い dll を参照しているものを見つけるにはどうすればよいですか?

ソリューション内のすべてのプロジェクトからすべての EF 参照を削除し、EF 4.3.1 パッケージを各プロジェクトに追加しましたが、それでも満足できません。

ノート:

dependentAssembly を使用してバインディング リダイレクトを試すことができます (この SO の質問で受け入れられた回答を参照してください)

ただし、使用する名前とトークンが見つかりません。

それでも、単にバインディングをリダイレクトするよりも、問題のルートにたどり着くほうがよいでしょう。

4

1 に答える 1

4

参照を変更した後にアプリケーションを再コンパイルしましたか、それとも新しいEntityFramework.dllファイルをアップロードしましたか? アプリケーションのライブラリがまだ実稼働環境で古いバージョンを参照している可能性があります。再コンパイルして再発行します。

編集(コメントを参照) : すべての .csproj ファイルをメモ帳で開き、参照タグを探し、古いバージョンがすべてのプロジェクトに存在しないことを再確認します。

于 2012-04-17T10:30:33.070 に答える