13

Tôi đang gặp một số sự cố khi cố gắng để có được DAAB từ thư viện Enterprise 5.0 đang chạy. Tôi đã làm theo các bước theo hướng dẫn, nhưng tôi nhận được lỗi ...Sự cố khi cố gắng định cấu hình thư viện doanh nghiệp 5.0 (Chặn ứng dụng truy cập dữ liệu)

1) Tải về/cài đặt doanh nghiệp thư viện

2) Thêm tài liệu tham khảo để các khối Tôi cần (common/data)

3) Nhập

Imports Microsoft.Practices.EnterpriseLibrary.Common 
Imports Microsoft.Practices.EnterpriseLibrary.Data 

4) Thông qua phần mềm cấu hình thư viện doanh nghiệp. Tôi mở web.config từ trang web của tôi. sau đó tôi bấm Blocks, sau đó Add cài đặt dữ liệu ... điền vào các chi tiết của tôi và lưu/đóng

5) Sau đó tôi (suy nghĩ thiết lập xong) cố gắng để có được một thể hiện của cơ sở dữ liệu thông qua

Dim db As Database = DatabaseFactory.CreateDatabase() 

6) Tôi biên dịch và nhận được lỗi sau:

Không thể tải tệp hoặc lắp ráp 'Microsoft.Practices.EnterpriseLibrary.Data, Phiên bản = 5.0.414.0, Văn hóa = trung lập, PublicKeyToken = 31bf3856ad364e35' hoặc một trong các phụ thuộc của nó. Định nghĩa tệp kê khai của assembly được đặt không khớp với tham chiếu assembly. (Ngoại lệ từ HRESULT: 0x80131040) (C: \ site \ web.config dòng 4)

Dòng 4 tắt web.config của tôi được tạo ra bởi các công cụ cấu hình và là:

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

Tôi có thiếu bước bắt buộc? Tôi đã thực hiện các bước theo thứ tự sai chưa? Tôi đã mắc phải sai lầm chưa?

Cảm ơn rất nhiều vì đã hỗ trợ.

Trả lời

20

Câu trả lời:

Tôi đã vô tình tham chiếu các hội đồng từ thư mục mã src. Có nghĩa là các thẻ công khai sẽ có = null. Tôi tham chiếu lại đến các hội đồng trong C: \ Program Files \ Microsoft Enterprise Library 5.0 \ Bin và vấn đề hiện đang được giải quyết.

+0

Điều này làm việc cho tôi, mặc dù tôi đã phải làm sạch và xây dựng lại giải pháp của mình trước khi các thay đổi đối với các tệp DLL có hiệu lực – tjrobinson

1

Điều bạn có thể cần làm là thay đổi khung mục tiêu trong thuộc tính của dự án của bạn từ ".NET Framework 4 Client Profile" thành ".NET Framework 4".

Khi bạn lần đầu tiên tạo dự án bảng điều khiển, VS 2010 theo mặc định sẽ tạo. "Hồ sơ khách hàng NET Framework 4". EL 5 được biên soạn với ".NET Framework 4" và dự án của bạn có thời gian khó khăn để giải quyết (các) dll EL.

+0

Tôi đang sử dụng .net framework 3.5 với vs2008 sp1 – Phil

4

Tôi đã thấy bạn nhận được câu trả lời; tuy nhiên, tôi muốn chỉ ra rằng khi bạn mở công cụ Config từ VS, bạn có tùy chọn để thông báo cho công cụ cấu hình những gì bạn muốn tham chiếu:

  1. Trong VS2010: mở cửa sổ trình biên tập thuộc tính và chọn từ giải pháp thám hiểm tệp Solution.
  2. Bạn sẽ thấy tùy chọn "Doanh nghiệp Thư viện 5 hội Set, với các tùy chọn để sử dụng các phiên bản có chữ ký (Microsoft đã ký) hoặc unsigned (EntLibV5Src)

Khi khởi chạy công cụ cấu hình, nó sẽ tham khảo các hội đồng trong tập tin cấu hình cho phù hợp với sự lựa chọn của bạn.

+1

Điều này phù hợp với tôi. Một additonal point: Nếu tập tin cấu hình của bạn đã có một số EntLib cụ thể trong nó đã được tham chiếu như đã ký và bạn muốn sử dụng các phiên bản chưa được giải nén của thư viện EntLib, bạn cần phải tự tay loại bỏ 'PublicKeyToken =' từ tập tin cấu hình của bạn bất cứ nơi nào nó được sử dụng EntLib context. Nếu không ConfigEditor sẽ không mở và bạn sẽ nhận được cùng một excetion. –

2

thư viện Doanh nghiệp có 2 tải ...

  • Enterprise Library 5.0 - Nguồn Code.msi
  • Enterprise Library 5.0.msi

Chỉ có một thứ hai có những chương trình có chữ ký .. . đó là những gì cần thiết để giải quyết "định nghĩa tệp kê khai không khớp với tham chiếu assembly" lỗi

(và FYI, phần thứ hai cũng bao gồm mã nguồn i f bạn chọn để cài đặt nó)

+0

Ngoài ra còn có bản cập nhật tùy chọn Enterprise Library 5.0 1. Phiên bản của nó là 5.0.505.0 và sẽ gây ra lỗi nếu nó được cài đặt thay cho Thư viện doanh nghiệp 5.0 cho một dự án hiện có. – Suncat2000

3

Ngoài những gì @Nicolas trả lời bạn trên có thể đến vấn đề này bằng cách loại bỏ dấu hiệu nào trong app.config nơi nào nó được sử dụng với doanh nghiệp Thư viện 5,0 dll

1

tạo

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