2011-12-08 13 views
10

私はこのためにgoogleを検索し、問題の解決策を見つけることができませんでした。ファイルまたはアセンブリ 'Microsoft.Practices.EnterpriseLibrary.Common'またはその依存関係の1つを読み込めませんでした

私のウェブサイトは、エンタープライズライブラリのデータアクセスコンポーネントを参照するDAL(カスタムdll)を参照しています。

私はNuGet Package Managerと私は、このコンパイルエラーがポップアップウェブサイトを構築しようとするからエンタープライズライブラリを追加しました:

エラー44が「Microsoft.Practices.EnterpriseLibrary.Common」ファイルまたはアセンブリをロードできませんでした。またはその依存関係の1つ。位置アセンブリのマニフェスト定義は、私がEnterprise Library dllsためDALでCopy Local = Trueを設定しようとした

アセンブリ参照に一致しないとDLLがDAL dllと一緒にウェブサイトのBinディレクトリに転送し、それでもエラーポップされていますアップ。

誰もがこの上で私を導くことができる....

+0

すべてのEL dllが.Commonを含むフォルダにあることを確認してください。 –

+1

私は上記のdllファイルが既にWebサイトのbinフォルダにコピーされていることも述べています –

+0

プロジェクトが.net frameworkクライアントプロファイルに設定されているときにこれを使用しますか?ソーリーが間違っている場合 – adopilot

答えて

8

問題は、使用しているDLLおよびプロジェクトで参照されている1が異なっているということです。マニフェストの違いは何か分かりませんが、バージョンや公開鍵になる可能性があります。プロジェクト内のDLLの参照用

  1. 開き、プロパティをfalseに特定のバージョンを設定します。

    あなたは物事のカップルを試してみて下さい。

  2. 参照を削除し、DLLをbinフォルダから削除して、参照を再度追加します。

  3. あなたのGACに違ったバージョンと違うバージョンがあるかもしれません。特定の既知のバージョンを常に使用していることを確認するには、プロジェクトディレクトリに関連するアセンブリフォルダを作成し、dllをそのディレクトリにコピーし、DLLへの参照をGACまたは他の場所ではなくアセンブリディレクトリに追加しますあなたのマシンで。これにより、後でマシン上で更新されたバージョンではなく、アプリケーションの対象となった特定のバージョンのみが使用されます。

+1

'Version Specific = true 'を設定すると問題が解決しました。私はそれが私のシステムにインストールされた 'EnterpriseLibrary'の複数のバージョンによると思うし、別のディレクトリを作成し、そこに同じ効果があるかもしれないdllを置く... –

+0

私のために(2)働いた。私はエラーを出していた参照を削除し、再度読み直しました –

4

NuGet CommonServiceLocator

Install-Package CommonServiceLocator 
2

このDLLは、一部のWindowsアプリケーションのインストールの一部として、開発者のマシン上でGACになる可能性がある(私の最高の推測は、Visual StudioまたはSSMSです)。 これは、GACを本番サーバのようにきれいに保つために最善を尽くしているビルドマシンで、警告やエラーが発生する可能性があるからです。手動でファイルをダウンロードするに

、ビルド警告とエラーを修正するにはhttps://servicelocation.codeplex.com/

に行くことができる、あなたは単にCommonServiceLocation packageをインストールするNuGetコマンドを実行する必要があります。パッケージには、この1つのdllファイルのみが含まれています。マイクロソフトは2008年からこのファイルのバージョン(1.0.0.0)を1つしかリリースしていません。このファイルは、すべての.NETバージョンおよびすべてのUnityバージョンと完全に互換性があります。この情報

ため

0

おかげで、私は同じ問題を持って、私は2.0から4.0へのフレームワークをアップグレードし、私はあなたが言及したことすべてを試してみましたが、解決策は、中EnterpriseLibrary参照ごとになPublicKeyToken値を設定することでしたWeb.Configファイル

0

同じ問題! ビルドをクリアしてプロジェクトを再構築しました。したがって、古いものはなくなり、正しいバージョンが置き換えられました。解決済み。

0

私はからapp.configファイル内のすべてのログの参照を削除することによってこの問題を解決することができました::

, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null 

すなわち:

<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, 
Microsoft.Practices.EnterpriseLibrary.Logging, 
Version=6.0.0.0, Culture=neutral, PublicKeyToken=null" 
requirePermission="true" /> 

は次のようになります。

 <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, 
Microsoft.Practices.EnterpriseLibrary.Logging" 
requirePermission="true" /> 

これは理想的ではありませんが、動作します...

エンタープライズライブラリ設定ツールは値を元に戻すため、その値を監視する必要があります。私は、これらの誤って一致した設定を受け入れるように設定ファイルを伝える方法があることを知っています - しかし、私はどのようにわかりません。