5

Tôi vừa nâng cấp log4net trong dự án của mình và đang gặp một số vấn đề về lắp ráp vì một thành phần dựa trên phiên bản cũ hơn của log4net.Cách lắp ráp chuyển hướng log4net sang phiên bản mới hơn

Phiên bản dự kiến ​​của thành phần này là

log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821 

Phiên bản tôi có là

log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a 

Làm thế nào để gây ra điều này ràng buộc để giải quyết đúng cách (chỉ có một sự khác biệt api và nó không nên vấn đề cho thành phần này).

Tôi đã thử thêm phần sau vào web.config của mình nhưng nó không hoạt động.

<dependentAssembly> 
    <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" /> 
    <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.12.0" /> 
    </dependentAssembly> 

Trả lời

8

Tôi không tin rằng có thể thực hiện chuyển hướng ràng buộc đến một hội đồng có khóa công khai khác.

  1. Bạn sẽ cần phải tải về phiên bản của v1.2.12.0 log4net được ký kết với chìa khóa cũ (http://psg.mtu.edu/pub/apache//logging/log4net/binaries/log4net-1.2.12-bin-oldkey.zip)

  2. Sau đó cập nhật mã của bạn, thay thế các tham chiếu tới:

    log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a

    với

    log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=1b44e1d426115821

Lưu ý liên quan: bạn có thể đặt phạm vi phiên bản trong chuyển hướng oldVersion="0.0.0.0-1.2.11.0", để tăng tính linh hoạt.

+0

Tôi cũng đã [tìm cách bao gồm cả hai hội đồng bên cạnh.] (Http://stackoverflow.com/questions/3158928/referencing-2-differents-versions-of-log4net-in-the-same -solution/3163050 # 3163050) [Ugh] (http://stackoverflow.com/questions/8743992/how-do-i-work-around-log4net-keeping-changing-publickeytoken) –

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