मैं एक डब्ल्यूसीएफ एप्लीकेशन CoreApplication
चला रहा हूं जिसका वीएस प्रोजेक्ट AncillaryProject
का संदर्भ है। CoreApplication
AncillaryProject
से Provider
कक्षा का उपयोग करता है; हालांकि, इसे स्पष्ट रूप से संदर्भित नहीं किया जाता है - इसे प्रतिबिंब के माध्यम से बुलाया जाता है।संदर्भित असेंबली नहीं मिली - समाधान में शामिल सभी डीएलएल कैसे प्राप्त करें
मेरे समस्या यह है कि कभी कभी CoreApplication
Provider
क्योंकि AncillaryProject
खोजने के लिए GetAssemblies()
करने के लिए कॉल में नहीं आता है विफल रहता है। कभी-कभी यह ठीक काम करता है, लेकिन कभी-कभी (मुझे लगता है कि यह एक जेआईटी के बाद हो सकता है) यह विफल रहता है।
यहाँ मेरी मूल कोड है:
var providers = from d in AppDomain.CurrentDomain.GetAssemblies()
from c in d.GetTypes()
where typeof(BaseProvider).IsAssignableFrom(c)
select c;
this question को देखने के बाद, मैं GetReferencedAssemblies()
उपयोग करने की कोशिश:
var allAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var a in AppDomain.CurrentDomain.GetAssemblies())
{
allAssemblies = allAssemblies.Union(
a.GetReferencedAssemblies()
.Select(b => System.Reflection.Assembly.Load(b)));
}
var providers = from d in allAssemblies
from c in d.GetTypes()
where typeof(BaseProvider).IsAssignableFrom(c)
select c;
मुझे लगता है कि सवाल मैं संदर्भित गतिशील रूप में सभी dll फ़ाइलें लोड के माध्यम से समस्या का हल बिन निर्देशिका, लेकिन यह मेरे लिए विशेष रूप से अच्छा नहीं लगता है। क्या यह करने का कोई बेहतर तरीका है, या .NET बस अन्य असेंबली को लोड नहीं कर रहा है? यह हुड के तहत कैसे काम करता है, और क्या मैं इसके बारे में कुछ भी कर सकता हूं?
पर एक चर्चा यह पूरी तरह से आपके प्रश्न का उत्तर नहीं होगा पाया है, लेकिन वहाँ इस सवाल का मेरा उत्तर में कुछ प्रासंगिक जानकारी है: http://stackoverflow.com/questions/9947882/ get-assemblies-without-instantiating-them/9948404 # comment12730056_9948404 विज़ुअलस्टूडियो में "संदर्भित" असेंबली को नोटटाइम करने के अलावा, रनटाइम पर अधिक मतलब नहीं है, फ़्यूज़न लॉगर का उपयोग करने के बारे में नीचे दिया गया जवाब भी एक अच्छी मदद है। जब भी फ़्यूज़न असेंबली की तलाश में है, तो आपको केवल AncillaryProject.dll की प्रतिलिपि बनाने में सक्षम होना चाहिए, लेकिन यह कुछ जवाब प्रदान कर सकता है कि यह कहां देख रहा है। – CodingWithSpike
अहह - जो मुझे वह जानकारी देता है जो मुझे जानने की ज़रूरत है। – eouw0o83hf
इस प्रश्न को ढूंढने वाले किसी भी व्यक्ति के लिए अनुवर्ती: पूछने के बाद के मध्य वर्षों में, मुझे एहसास हुआ कि मैं इस बारे में पूरी तरह से गलत तरीके से जा रहा था। कभी-कभी कम जादुई और स्पष्ट रूप से 'टाइप' की सूची को सूचीबद्ध करना बहुत दूर है। यह उन स्थितियों में से एक है। – eouw0o83hf