5

Ho appena aggiornato log4net nel mio progetto e sto avendo alcuni problemi di associazione degli assembly perché un componente si basa su una versione precedente di log4net.Come reindirizzare l'assembly log4net alla versione più recente

la versione prevista dal componente è

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

La versione che ho è

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

Come faccio a causare questo vincolante per risolvere correttamente (c'è solo una differenza di api e non dovrebbe questione per questo componente).

Ho provato ad aggiungere quanto segue al mio web.config ma non funziona.

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

risposta

8

Non credo sia possibile eseguire un reindirizzamento di binding a un assembly con una chiave pubblica diversa.

  1. Avrai bisogno di scaricare la versione di v1.2.12.0 log4net che viene firmato con la vecchia chiave (http://psg.mtu.edu/pub/apache//logging/log4net/binaries/log4net-1.2.12-bin-oldkey.zip)

  2. Poi aggiornare il codice, sostituendo i riferimenti a:

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

    con

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

In una nota correlata: si può mettere una gamma di versione nel reindirizzamento oldVersion="0.0.0.0-1.2.11.0", per una maggiore flessibilità.

+0

Ho anche trovato [un modo per includere entrambi gli assembly uno accanto all'altro.] (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) –

Problemi correlati