Webアプリケーションといくつかのクライアント側コードの両方で構成されるVisualStudio2012ソリューションがあります。アプリケーションの構造には、データアクセスに使用される共有クラスライブラリがあります。
クライアント側のコードは.NET4をターゲットにする必要があります。これは、.NET4.5がインストールされていない可能性のあるマシンに展開するためです。私はWebサーバーの端を制御しているので、そのために.NET4.5を想定できます。
これで、データアクセスライブラリはクライアント側とサーバー側の両方で使用する必要があるため、.NET 4のみを使用する必要があります。ただし、これにより予期しない問題が発生します。
データアクセスライブラリはEntityFrameworkを使用します。.NET 4であるため、EFバージョン4.4を使用します。ただし、WebアプリケーションはEntity Frameworkも参照する必要があり、.NET 4.5であるため、EFバージョン5.0を使用します。
これにより、アプリケーションを実行しようとすると(断続的に)エラーが発生します。(同じマシンで、VS2012からWebサイトとクライアントコードの両方を起動しています)。
ブラウザのアドレスバーにURLを入力するだけで、Webサイトは正常に機能します。データアクセスライブラリを使用して、問題なくデータを取得できます。ただし、クライアントアプリケーションを使用すると、(通常は常にではありませんが)Webエンドからサーバーエラーが返され、クライアントアプリケーション(Webエンド)がEntityFrameworkアセンブリを読み込めないことが示されます。
ファイルまたはアセンブリを読み込めませんでした'EntityFramework、Version = 5.0.0.0、...見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。
デバッガーで同じマシンで実行しているためにこれが問題になるだけなのか、それともデプロイ後にアプリケーションに影響を与えるものなのかはわかりません。
私はここで何かクレイジーなことをしていますか、それともこれでうまくいくはずですか?