18

私はこれをグーグルで検索しましたが、問題の解決策を見つけることができませんでした。

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

からエンタープライズライブラリを追加しましたNuGet Package Manager。Webサイトを構築しようとすると、このコンパイルエラーがポップアップ表示されます。

エラー44ファイルまたはアセンブリ'Microsoft.Practices.EnterpriseLibrary.Common'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません

Copy Local = TrueのDALにを設定しようとしましたEnterprise Library dllsが、dllはと一緒にWebサイトのBinディレクトリに転送されますがDAL dll、それでもエラーが表示されます。

誰かがこれについて私を導くことができますか....

4

5 に答える 5

11

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

試してみることがいくつかあります。

  1. プロジェクトで DLL 参照のプロパティを開き、バージョン固有を false に設定します。

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

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

于 2011-12-08T18:43:18.423 に答える
3

NuGet CommonServiceLocator

Install-Package CommonServiceLocator
于 2013-10-23T03:36:16.420 に答える
1

app.config ファイルのすべての Logging 参照を削除することで、この問題を解決できました::

, 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" />

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

Enterprise Library Configuration Tool は値を元に戻すので、それを監視する必要があります。これらの不一致の設定を受け入れるように構成ファイルに指示する方法があることは知っていますが、その方法はわかりません。

于 2017-04-04T19:34:48.047 に答える
0

Web.Config の EnterpriseLibrary 参照ごとに PublicKeyToken 値を設定すると、修正されました。

于 2015-12-23T17:02:01.097 に答える