2012-04-25 4 views
9

Ich habe folgendes in meinem app.config.werden Baugruppenbindungen für PublicKeyToken = null ignoriert?

<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> 

Fusion Protokollierung sagt mir, dass es nicht für meine Montage in bin2 sucht.

LOG: Anfangs privatePath = NULL (und sucht es nie in bin/Debug/bin2/Foo)

Ist das ein Problem mit nicht publicKeyToken zu haben?

Antwort

10

Ja, sie werden für Assemblys ignoriert, die nicht stark benannt sind (publicKeyToken), da die CLR Versionsnummern für diese Assemblys ignoriert.

Weitere Informationen finden Sie unter this MSDN page.

+2

Die spezifische Notiz auf der Seite besagt: "Sie können Versionen für Assemblys, die nicht stark benannt sind, nicht umleiten. Die Common Language Runtime ignoriert die Version für Assemblys, die keinen starken Namen haben." – JJS

+0

@JJS: Für .NET 4.5 ist diese Notiz nicht vorhanden. Es ist jedoch nicht klar, ob sich das Verhalten geändert hat. –

Verwandte Themen