13

我在嘗試從Enterprise庫5.0運行中獲取DAAB時遇到了一些問題。我按照步驟按照教程,但我得到錯誤...嘗試配置企業庫5.0(數據訪問應用程序塊)時出現問題

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'或其依賴項之一。定位的程序集清單定義與程序集引用不匹配。 (異常來自HRESULT:0x80131040)(C:\網站\ web.config行4)

4號線關閉是由配置工具生成我的web.config是:

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

我失去了一個需要的步驟?我是否按錯誤順序完成了這些步驟?我犯了一個錯誤嗎?

非常感謝您的幫助。

回答

20

答案:

我不期而遇從SRC代碼文件夾中引用的程序集。這意味着公共令牌會有= null。我重新引用了C:\ Program Files \ Microsoft Enterprise Library 5.0 \ Bin中的程序集,現在問題已解決。

+0

這對我很有效,雖然我必須在更改DLL生效之前清理並重建我的解決方案 – tjrobinson 2010-06-23 12:38:51

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)。

+0

我正在使用.net framework 3.5與vs2008 sp1 – Phil 2010-05-18 06:16:50

4

我已經看到你得到了答案;不過,我想指出的是,當您打開VS的配置工具,你可以選擇告訴配置工具要具有參考哪些組件:

  1. 在VS2010:打開屬性編輯器窗口,從解決方案資源管理器中選擇Solution文件。
  2. 你會看到選項「企業庫5大會確定的,與使用簽名的版本的選項(微軟簽名)或無符號(EntLibV5Src)

當你火起來的配置工具,它會根據您的選擇相應地在配置文件中引用程序集。

+1

這對我有效。另一個要點:如果你的配置文件已經有一些EntLib特定的東西被引用爲簽名,並且你想使用未初始版本的EntLib庫,你需要手動從配置文件中刪除'PublicKeyToken =',無論它在哪裏使用EntLib上下文。否則ConfigEditor將不會打開,您將得到相同的優先級。 – 2011-07-08 09:26:02

2

企業庫有2個下載...

  • 企業庫5.0 - 源Code.msi
  • 企業庫5.0.msi

只有第二個有簽署的二進制文件.. 。這是解決「清單定義不匹配程序集參考」所必需的錯誤

(和FYI,第二個也包括源代碼i F你選擇安裝它)

+0

還有一個Enterprise Library 5.0可選更新1.它的版本是5.0.505.0,如果它安裝在Enterprise Library 5.0的現有項目的位置,將導致該錯誤。 – Suncat2000 2013-04-22 19:28:42

3

除了什麼@Nicolas回答您可以通過在app.config中除去公共令牌來這個問題在以往任何時候它正在與企業庫5.0 DLL使用

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" />  
相關問題