2011-09-15 16 views
5

कहें कि मेरे पास एक .NET असेंबली A.dll है जो तृतीय पक्ष .net असेंबली B.dll और तृतीय पक्ष .net असेंबली C.dll का उपयोग करता है।उनकी अप्रबंधित निर्भरताओं पर संघर्ष करते समय 2 तृतीय पक्ष .net पुस्तकालयों का उपयोग कैसे करें?

यह पता चला है कि आंतरिक रूप से B.dll अप्रबंधित असेंबली D.dll (संस्करण 1) और C.dll अप्रबंधित असेंबली D.dll (संस्करण 2) का उपयोग करता है।

बी और सी विभिन्न विक्रेताओं से आते हैं और केवल डी डीएल के उनके सही संस्करण के साथ परीक्षण किए जाते हैं।

मैं ऐसे ए को कैसे तैनात कर सकता हूं कि बी और सी सही तरीके से काम करेंगे?

संपादित करें:

मुझे लगता है कि तीन अलग-अलग समस्याएं हैं:

1) कैसे बाहर से विकास की तलाश के लिए पथ बी और सी उपयोग को नियंत्रित करने।

2) अपने स्वयं के निर्भरताओं के लिए पथ डी का बाहरी रूप से नियंत्रण कैसे करें।

3) यह सुनिश्चित करने के लिए कि प्रक्रिया फ़ंक्शन कॉल को सही तरीके से निर्देशित करती है।

मेरे शोध से पता चलता है कि सभी मॉड्यूल के संकलन समय नियंत्रण के बिना यह असंभव हो सकता है ...

उत्तर

1

मैं "की जांच कर" विन्यास खंड के माध्यम से कई बिन फ़ोल्डरों को कॉन्फ़िगर करने की कोशिश करेंगे।

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="bin;bin\B;bin\C"/> 
     </assemblyBinding> 
    </runtime> 
</configuration> 

तो मैं बिन \ सी फ़ोल्डर में B.dll और बिन \ बी फ़ोल्डर में अपने अप्रबंधित निर्भरता, और C.dll और उसके अप्रबंधित निर्भरता जाते थे।

+0

मेरी समझ से यह बी और सी खोजने के लिए रीडायरेक्ट करेगा, हालांकि यह डी – morechilli

+0

@morechilli के लिए अप्रबंधित खोज के लिए स्वचालित रूप से श्रृंखला नहीं लेगा: जहां तक ​​मैं समझता हूं कि बी और सी को अपने स्वयं के निर्भरताओं की तलाश करनी चाहिए, इसलिए प्रत्येक (बी और सी) को मदद के लिए डी – ivan

+0

के संबंधित संस्करण मिलना चाहिए - क्या आपके पास इस व्यवहार का वर्णन करने वाली किसी भी चीज़ का लिंक है - मुझे कोई सुझाव नहीं मिला है कि यह मामला है। – morechilli

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