尝试配置企业库5.0时出现问题(数据访问应用程序块)

时间:2010-05-17 13:27:53

标签: web-config enterprise-library data-access-layer daab enterprise-library-5

我在尝试从Enterprise Library 5.0运行DAAB时遇到了一些问题。我按照教程按照步骤操作,但是收到错误...

1)下载/安装企业库

2)添加对我需要的块的引用(common / data)

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”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (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" />

我错过了必要的步骤吗?我是否按错误的顺序完成了这些步骤?我犯了错误吗?

非常感谢您的帮助。

6 个答案:

答案 0 :(得分:20)

答案:

我偶然从src代码文件夹中引用了程序集。这意味着公共令牌将具有= null。我重新引用了C:\ Program Files \ Microsoft Enterprise Library 5.0 \ Bin中的程序集,问题现在已经解决了。

答案 1 :(得分:4)

我已经看到你得到了答案;但是,我想指出当你从VS打开配置工具时,你可以选择告诉配置工具你想要引用的程序集:

  1. 在VS2010中:打开属性编辑器窗口,然后从解决方案资源管理器中选择解决方案文件。
  2. 您将看到“Enterprise Library 5 Assembly Set”选项,其中包含使用签名版本(Microsoft Signed)或未签名版本(EntLibV5Src)的选项
  3. 启动配置工具时;它将根据您的选择引用配置文件中的程序集。

答案 2 :(得分:3)

除了@Nicolas回答的问题,你可以通过删除app.config中的公共令牌来解决这个问题,其中它与Enterprise Library 5.0 dll一起使用

答案 3 :(得分:2)

企业库有2个下载...

  • Enterprise Library 5.0 - 源代码.msi
  • Enterprise Library 5.0.msi

只有第二个具有签名的二进制文件...这是解决“清单定义与程序集引用不匹配”错误所必需的错误

(仅供参考,如果您选择安装,第二个还包括源代码)

答案 4 :(得分:1)

您可能需要做的是将项目属性中的Target框架从“.NET Framework 4 Client Profile”更改为“.NET Framework 4”。

首次创建控制台项目时,默认情况下,VS 2010会创建“.NET Framework 4 Client Profile”。 EL 5使用“.NET Framework 4”编译,您的项目很难解决EL dll(s)。

答案 5 :(得分:1)

产生

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