मैं कुछ नेट विधानसभाओं, एक ही संस्करण, एक ही फ़ाइल नाम है, लेकिन अलग-अलग स्थान पर स्थित:विधानसभाओं के आदेश को लोड किए जाने
- कार्यक्रम फ़ोल्डर
- C: \ Windows
- सी: \ Windows \ system32
- GAC
, जो स्थान के विधानसभा पहले लोड किया जाएगा?
मैं कुछ नेट विधानसभाओं, एक ही संस्करण, एक ही फ़ाइल नाम है, लेकिन अलग-अलग स्थान पर स्थित:विधानसभाओं के आदेश को लोड किए जाने
, जो स्थान के विधानसभा पहले लोड किया जाएगा?
नेट विधानसभाओं अलग अलग खोज क्रम से नियमित रूप से खिड़कियों .dll है। जीएसी को केवल पहली चीज की जांच की जाएगी यदि असेंबली पर हस्ताक्षर किए गए हैं। यदि असेंबली जीएसी/मजबूत नाम पर हस्ताक्षर नहीं है, तो उसके बाद स्थानीय फ़ोल्डर की जांच की जाती है। यह .NET असेंबली खोज आदेश का अंत है, ऊपर 1,2 और 3 चेक नहीं किए गए हैं।
आप अपने ऐप के लिए स्थानीय कॉन्फ़िगरेशन फ़ाइल करके .net को असेंबली के लिए देख सकते हैं, जहां आप बदल सकते हैं।
इसके अलावा, this post in the microsoft.public.dotnet.framework.aspnet
group बहुत उपयोगी जानकारी होती है।
यह एक उचित स्पष्टीकरण की तरह दिखता है: http://www.ondotnet.com/pub/a/dotnet/2003/03/17/bindingpolicy.html
MSDN पर निम्नलिखित भी प्रासंगिक हो सकता है: http://msdn.microsoft.com/en-us/library/yx7xezcf.aspx
सी: \ विंडोज और सी: \ विंडोज \ System32 प्रबंधित असेंबली जांच के लिए प्रासंगिकता नहीं है। ढांचा वहां असेंबली की तलाश नहीं करेगा।
यह पहली GAC
/Application Folder
में और उसके बाद लग रहा है में फ़ोल्डर यदि App.config फ़ाइल में निर्दिष्ट codebase
/privatepath
सेटिंग्स द्वारा की ओर इशारा किया। (केवल जीएसी में मजबूत नामित असेंबली लगाई जा सकती हैं।) जांच करते समय .dll या .exe को जोड़कर कई संयोजनों के लिए जांच करता है, assembly.exe/.dll नामक फ़ोल्डरों को देखकर, यदि आवश्यक हो तो विशिष्ट संस्कृतियों के लिए लक्षित असेंबली की तलाश ।
जो क्रम विधानसभा संकल्प असफलताओं के लिए चेक किए गए फ़ोल्डर को देखने के लिए एक अच्छा उपकरण Fusion Log Viewer है। वीएस कमांड प्रॉम्प्ट पर 'fuslogvw' दर्ज करें। यह ApplicationName और नाम
द्वारा keyed 'ProbingPath' देखने के साथ इस अद्यतन करने के लायक हो सकता है प्रविष्टियों – GETah
" दृढ़ता से हस्ताक्षर किए नाम "आप मज़बूत नाम और हस्ताक्षर किए मतलब है पता चलता है? – user145400