2012-04-25 14 views
9

Tengo lo siguiente en mi app.config.¿se ignoran los enlaces de ensamblaje para 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> 

tala Fusión me dice que no está mirando en bin2 para mi montaje.

REGISTRO: Inicial privatePath = NULL (y nunca busca en bin/Debug/bin2/Foo)

Es éste un problema con no tener un publicKeyToken?

Respuesta

10

Sí, se ignoran para los ensamblados que no tienen un nombre fuerte (tienen un publicKeyToken) ya que el CLR ignora los números de versión para estos ensamblajes.

Consulte this MSDN page para obtener más información.

+2

La nota específica en la página dice: "No se pueden redirigir versiones para ensamblados que no tienen un nombre seguro. El tiempo de ejecución de lenguaje común ignora la versión para ensamblados que no tienen un nombre seguro". – JJS

+0

@JJS: para .NET 4.5 esa nota no existe. Sin embargo, no está claro si el comportamiento ha cambiado. –

Cuestiones relacionadas