Tôi đã dành 2 giờ qua để xem xét các vấn đề này trên SO và không có gì có vẻ hoạt động.Tuy nhiên, một vấn đề khác về xung đột log4net 1.2.11
Tôi có giải pháp sử dụng log4net 1.2.11, thông qua NuGet. Nó hoạt động tốt trên máy trạm phát triển 32 bit của tôi đang chạy Windows 7. Nó không chạy trên hệ thống thử nghiệm Windows 2008 R2 64-bit của tôi. Các lỗi tôi nhận được là:
Unhandled Exception: System.IO.FileLoadException: Không thể tải tập tin hoặc lắp ráp 'log4net, Version = 1.2.11.0, Văn hóa = trung tính, PublicKeyToken = 669e0ddf0bb1aa2a' 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.
Tôi đang tìm trong thư mục ứng dụng trên hệ thống thử nghiệm của mình. Tệp log4net.dll
có phiên bản 1.2.11.
Phiên bản trong GAC là phiên bản 1.2.10. Tôi đã xóa nó. Đã có một phiên bản trên máy chủ phát triển của tôi mà lại là một cái gì đó khác; Tôi cũng loại bỏ nó. Tôi đã xây dựng lại; Tôi đã triển khai lại. Tôi đã thêm
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669E0DDF0BB1AA2A" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.2.10.0" newVersion="1.2.11.0"/>
</dependentAssembly>
vào tệp cấu hình của mình. Không có gì dường như tạo ra một chút khác biệt. Dự án triển khai của tôi cho thấy phiên bản đúng và chữ ký của hội đồng log4net đang được triển khai.
Tôi không biết mình có thể làm gì khác, nhưng tôi thấy khá thất vọng khi thư viện ghi nhật ký đang ngăn ứng dụng của tôi chạy.
Tôi đã bỏ lỡ điều gì?
Tôi phải làm điều tương tự. Vấn đề là khi các phụ thuộc yêu cầu các phiên bản log4net xung đột. –
Xem câu trả lời của @ keithl8041 về giải pháp thực tế cho vấn đề này thay vì làm việc xung quanh. :) –
@JohnySkovdal, thực ra tôi cũng sẽ gọi đó là giải pháp thay thế. Điều đó có nghĩa là bạn phải tiếp tục sử dụng thư viện không dùng nữa và khóa thư viện cũ có EOL rõ ràng. Điều đó giới hạn các lựa chọn của bạn trong tương lai. –