2012-04-29 67 views
8

Tôi đang cố gắng tạo dự án sử dụng thư viện LinqToExcel. Ngoài ra, tôi đang sử dụng log4net để viết nhật ký.Lỗi xảy ra khi tôi đang cố gắng tải cụm từ log4net

Vấn đề của tôi bắt đầu khi tôi đang tryomg để chạy dòng mã này:

var excel = new ExcelQueryFactory(ExcelPath); 
return (from r in excel.Worksheet<RowDetails>(company.Name) 
     select r).Count(); 

Dòng này ngoại lệ ném:

LỖI MyProj.Program chính: System.IO.FileLoadException: Có thể không tải tệp hoặc lắp ráp 'log4net, Phiên bản = 1.2.11.0, Văn hóa = trung lập, PublicKeyToken = 669e0ddf0bb1aa2a' hoặc một trong các phụ thuộc của nó. Định dạng tệp kê khai của assembly lắp ráp không khớp với tham chiếu assembly . (Ngoại lệ từ HRESULT: 0x80131040) Tên tập tin: 'log4net, Version = 1.2.11.0, Văn hóa = trung tính, PublicKeyToken = 669e0ddf0bb1aa2a'

Điều quan trọng cần lưu ý rằng tôi là thành công để sử dụng log4net trước dòng này.

Tôi sẽ đánh giá cao bất kỳ trợ giúp nào.

Cảm ơn rất nhiều!

+2

Dường như bạn đang tải các phiên bản khác nhau của lắp ráp log4net. Nó có thể được rằng bạn có một số log4net.dll trong hệ thống tập tin của bạn, và một sai lầm được chọn để được nạp? –

+0

Tôi có cùng một vấn đề; chữ ký khớp trong dự án triển khai của tôi, dll được triển khai trong cùng thư mục với assembly của tôi, nhưng tôi nhận được lỗi này. Phần đầu tiên. –

+0

1.2.11+ có hai hương vị, "khóa cũ" và "khóa mới", bạn dường như cần có hương vị chính mới ... –

Trả lời

6

Như marc_s đã chỉ ra, sự cố này thường xuất hiện khi cố gắng tải các phiên bản khác nhau của cùng một cụm. Hãy chắc chắn rằng dự án của bạn sử dụng cùng một phiên bản assembly như thư viện LinqToExcel, cũng phụ thuộc vào log4net. Ngoài ra bất kỳ thư viện nào khác cũng nên sử dụng cùng một phiên bản assembly. Để giải quyết vấn đề, bạn cũng có thể thử sử dụng lắp ráp chuyển hướng trong app.config của bạn như vậy:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" /> 
     <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.11.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
6

cố gắng để cài đặt nó bằng cách sử NuGet

Install-Package log4net -Version 2.0.0 

Version 2.0.0 là dành cho log4net 1.2. 11

1

Tôi gặp sự cố tương tự. Tôi nghĩ rằng vấn đề là trong LinqtoExcel tham chiếu Log4Net phiên bản 1.2.11, và bạn đã tham chiếu Log4Net sepratly và bạn nhận được phiên bản 1.2.13 mới nhất. Trong đầu ra xây dựng, bạn sẽ kết thúc với 1.2.13, và khi LintoExcel gọi Log4Net nó mong đợi 1.2.11 và các ocures lỗi.

0

Tôi gặp vấn đề này sau khi nâng cấp log4net thông qua NuGet, chỉ để thấy rằng phiên bản mới hơn đã được ký bằng một khóa khác.

Bạn có thể lấy phiên bản 'oldkey' từ the apache log4net site và sau đó nó làm việc cho tôi.

Các vấn đề liên quan