2012-04-25 14 views
9

मेरे पास मेरे app.config में निम्न है।असेंबली बाइंडिंग्स 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> 

फ्यूजन प्रवेश मुझसे कहता है कि यह मेरे विधानसभा के लिए bin2 में देख नहीं है।

लॉग: प्रारंभिक PrivatePath = शून्य (और यह कभी नहीं खोज bin/Debug/bin2/Foo में)

यह एक publicKeyToken नहीं होने के साथ एक समस्या है?

उत्तर

10

हां, उन्हें असेंबली के लिए अनदेखा किया जाता है जो मजबूत नाम नहीं हैं (सार्वजनिक रूप से टोकन है) क्योंकि सीएलआर इन असेंबली के लिए संस्करण संख्याओं को अनदेखा करता है।

अधिक जानकारी के लिए this MSDN page देखें।

+2

पृष्ठ पर विशिष्ट नोट कहता है: "आप उन असेंबली के लिए संस्करणों को रीडायरेक्ट नहीं कर सकते हैं जो मजबूत नहीं हैं। सामान्य भाषा रनटाइम उन असेंबली के संस्करण को अनदेखा कर देती है जो मजबूत नाम नहीं हैं।" – JJS

+0

@ जेजेएस: .NET 4.5 के लिए नोट मौजूद नहीं है। यह स्पष्ट नहीं है, हालांकि, व्यवहार बदल गया है या नहीं। –

संबंधित मुद्दे