वर्तमान में निष्पादित असेंबली द्वारा संदर्भित सभी असेंबली के पथ कैसे प्राप्त करें? GetReferencedAssmblies()
मुझे AssemblyName[]
एस देता है। मैं वहां से कहां से लोड हो सकता हूं, वहां से?सभी संदर्भित असेंबली के पथ प्राप्त करें
उत्तर
आप जब तक विधानसभा लोड किया जाता है पता नहीं कर सकते हैं। असेंबली रिज़ॉल्यूशन एल्गोरिदम जटिल है और आप अनुमान लगा सकते हैं कि यह क्या करेगा। Assembly.Load(AssemblyName)
ओवरराइड को कॉल करने से आपको असेंबली का संदर्भ मिल जाएगा, और इसकी स्थान संपत्ति आपको बताती है कि आपको क्या चाहिए।
हालांकि, अगर आप वास्तव में नहीं सामने विधानसभाओं लोड करने के लिए, से पहले JIT कम्पाइलर यह करता है चाहता हूँ। यह अक्षम है और समस्याओं की संभावना शून्य नहीं है। कार्यक्रम के जवाब देने से पहले आप उदाहरण के लिए AppDomain.AssemblyResolve
ईवेंट आग लग सकते हैं। इस सवाल पूछने से बचें।
सही उत्तर के लिए बहुत धन्यवाद। –
CodeBase
संपत्ति को पूरा पथ नाम प्रदान करना चाहिए।
क्या आपने इसे आजमाया है? –
दुर्भाग्य से, कोडबेस प्रत्येक संदर्भित असेंबली पर शून्य देता है। :-) –
आप इस तरह विधानसभा का URL स्थान प्राप्त कर सकते हैं:
Assembly.GetExecutingAssembly().GetReferencedAssemblies()[0].CodeBase
कोडबेस शून्य लौटाता है। समाधान इस पोस्ट में है कि जेसन इवान्स ने मूल टिप्पणी पर अपनी टिप्पणी में शामिल किया था। इसके अलावा, हंस पासेंट का भी सही जवाब है। –
हंस पासेंट के उत्तर के बाद, और CodeBase
संपत्ति में हमेशा null
शामिल था, मैं इसके साथ आया। यह सभी असेंबली नहीं मिल सकता है क्योंकि वे सभी पहले ही लोड नहीं हो सकते हैं। मेरी स्थिति में, मैं एक पहले से भरी हुई विधानसभा के सभी संदर्भ की तलाश करनी है, तो यह अच्छी तरह से काम:
IEnumerable<string> GetAssemblyFiles(Assembly assembly)
{
var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assemblyName in assembly.GetReferencedAssemblies())
yield return loadedAssemblies.SingleOrDefault(a => a.FullName == assemblyName.FullName)?.Location;
}
उपयोग:
var assemblyFiles = GetAssemblyFiles(typeof(MyClass).Assembly);
- 1. एक संदर्भित असेंबली में सभी प्रकार कैसे प्राप्त करें?
- 2. संदर्भित असेंबली के नियम
- 3. टी 4 टेम्पलेट में संदर्भित परियोजना के पथ प्राप्त करें?
- 4. किसी अन्य असेंबली में संदर्भित/संदर्भित असेंबली संस्करणों का निर्धारण
- 5. मैं संदर्भित असेंबली से प्रतिबिंब
- 6. संदर्भित असेंबली नहीं मिली - समाधान में शामिल सभी डीएलएल कैसे प्राप्त करें
- 7. कस्टम विशेषता के साथ असेंबली में सभी प्रकार प्राप्त करें
- 8. आश्रित असेंबली प्राप्त करें?
- 9. एक डब्ल्यूसीएफ सेवा असेंबली में फ़ाइल का पथ प्राप्त करना
- 10. संदर्भित असेंबली में कॉन्फ़िगरेशन दोहराएं
- 11. सी # प्रतिबिंब: समाधान में सभी * सक्रिय असेंबली प्राप्त करें?
- 12. उपग्रह असेंबली से सभी समर्थित संस्कृतियां प्राप्त करें
- 13. वर्ग नाम को स्ट्रिंग के रूप में आपूर्ति करके संदर्भित असेंबली में टाइप प्राप्त करें?
- 14. डेटाबेस पथ प्राप्त करें
- 15. एंड्रॉइड में पथ में सभी अंक कैसे प्राप्त करें?
- 16. .NET असेंबली के असेंबली इन्फॉर्मेशन वर्जन मान प्राप्त करें?
- 17. सभी उपलब्ध .NET असेंबली
- 18. भौतिक पथ के सर्वर पथ कैसे प्राप्त करें?
- 19. बूस्ट :: फाइल सिस्टम के साथ पूर्ण पथ प्राप्त करें :: पथ
- 20. मेरे दस्तावेज़ों के लिए पथ प्राप्त करें
- 21. jquery - यूआरएल पथ प्राप्त करें?
- 22. कक्षा पुस्तकालय में सामग्री का फ़ाइल पथ कैसे प्राप्त करें
- 23. आईएलएमर्ज के साथ एफ # और सी # असेंबली कैसे विलय करें ताकि संदर्भित होने पर सभी प्रकार उपलब्ध हों?
- 24. सी # CompileAssemblyFromSource, संदर्भित असेंबली जोड़ने की जरूरत है?
- 25. सीएलआर एसक्यूएल असेंबली: बाइटस्ट्रीम प्राप्त करें?
- 26. सभी जावास्क्रिप्ट चर सभी प्राप्त करें?
- 27. सभी उप निर्देशिकाएं प्राप्त करें जिनमें केवल
- 28. यूआरआई से फ़ाइल पथ कैसे प्राप्त करें?
- 29. तत्व के सभी सीएसएस कैसे प्राप्त करें
- 30. वर्तमान सप्ताह के सभी दिन प्राप्त करें?
इस प्रयास करें http://stackoverflow.com/questions/1582510/ Get-pathes-of-assemblies-used-in-type –
बहुत धन्यवाद। यह मेरे लिए हल हो गया। –
सभी संदर्भित असेंबली कैसे प्राप्त करें, इसके बारे में पूरी तरह से काम करने वाले उदाहरण के लिए, http://stackoverflow.com/questions/383686/how-do-you-loop-through-currently-loaded-assemblies/26300241#26300241 देखें। – Contango