Enterpriseライブラリ5.0からDAABを実行しようとしているときに、いくつかの問題が発生しました。チュートリアルの手順に従いましたが、エラーが発生します...
1)エンタープライズライブラリをダウンロード/インストールする
2)必要なブロックへの参照を追加します(共通/データ)
3)輸入
Imports Microsoft.Practices.EnterpriseLibrary.Common
Imports Microsoft.Practices.EnterpriseLibrary.Data
4)エンタープライズライブラリ構成ソフトウェアを介して。私は自分のサイトからweb.configを開きます。次に、[ブロック]、[データ設定の追加...]の順にクリックし、詳細を入力して保存/閉じる
5)次に(セットアップが完了したと思います)を介してデータベースのインスタンスを取得しようとします
Dim db As Database = DatabaseFactory.CreateDatabase()
6)コンパイルすると、次のエラーが発生します。
ファイルまたはアセンブリ 'Microsoft.Practices.EnterpriseLibrary.Data、Version = 5.0.414.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)(C:\ site\web.config行4)
Web.configの4行目は、構成ツールによって生成されたもので、次のとおりです。
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
必要な手順がありませんか?手順を間違った順序で実行しましたか?間違えましたか?
助けてくれてありがとう。
答え:
誤ってsrcコードフォルダからアセンブリを参照していました。つまり、パブリックトークンは= nullになります。 C:\ Program Files\Microsoft Enterprise Library 5.0\Binのアセンブリを再参照しましたが、問題は解決しました。
私はすでにあなたが答えを得たのを見ました。ただし、VSから構成ツールを開くと、参照するアセンブリを構成ツールに指示するオプションがあることを指摘したいと思います。
設定ツールを起動すると、選択に応じて、構成ファイル内のアセンブリを参照します。
@Nicolasが回答したことに加えて、Enterprise Library 5.0 dllで使用されている場合は常に、app.configのパブリックトークンを削除することでこの問題を克服できます
エンタープライズライブラリには2つのダウンロードがあります...
2番目のものだけが署名されたバイナリを持っています...これは「マニフェスト定義がアセンブリ参照と一致しません」エラーを解決するために必要なものです
(そして参考までに、2番目のものにはインストールすることを選択した場合のソースコードも含まれています)
生む
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
おそらくあなたがする必要があるのは、プロジェクトのプロパティのターゲットフレームワークを「.NETFramework4クライアントプロファイル」から「.NETFramework4」に変更することです。
コンソールプロジェクトを最初に作成するとき、VS2010はデフォルトで「NETFramework4クライアントプロファイル」を作成します。 「.NETFramework4」でコンパイルされたEL5で、プロジェクトがELdllを解決するのに苦労しています。