2012-04-25 13 views
9

Ho il seguente nel mio app.config.i binding di assembly sono ignorati per PublicKeyToken = null?

<configuration> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <probing privatePath="bin2" /> 
    <dependentAssembly> 
     <assemblyIdentity name="Foo" culture="neutral" publicKeyToken="null"> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.4497.27619" /> 
     </assemblyIdentity> 
    </dependentAssembly> 
    </assemblyBinding> 
    ... 
<configuration> 

registrazione Fusion mi dice che non sta cercando in bin2 per il mio assemblaggio.

LOG: Initial privatePath = NULL (e non è mai in cerca bin/Debug/bin2/Foo)

questo è un problema di non avere un publicKeyToken?

risposta

10

Sì, vengono ignorati per gli assembly che non hanno un nome sicuro (hanno un tokenKey pubblico) poiché il CLR ignora i numeri di versione per questi assembly.

Vedere this MSDN page per ulteriori informazioni.

+2

La nota specifica nella pagina dice: "Non è possibile reindirizzare le versioni per gli assiemi che non hanno un nome sicuro. Il common language runtime ignora la versione per gli assembly che non hanno il nome sicuro." – JJS

+0

@JJS: per .NET 4.5 quella nota non esiste. Non è chiaro, tuttavia, se il comportamento è cambiato. –

Problemi correlati