2012-11-05 10 views
6

मुझे लोड किए गए घटकों के लिए निर्भरता उठाते हुए MEF के साथ समस्याएं आ रही हैं।MEF प्लगइन निर्भरता प्लगइन निर्देशिका के रूप में लोड नहीं हो रहा है

C:/MSMQ/DistributionService/[मुख्य आवेदन]

सी:/MSMQ/प्रदाता/[प्लगइन घटकों]

बेशक

, हम एक प्रयोग कर रहे हैं हम एक निर्देशिका संरचना है कि लगता है कि है निर्देशिकासूची, प्लगइन उठाया गया है, लेकिन इसकी 'निर्भरता में से एक नहीं है। त्रुटि संदेश है:

2012-11-02 10:46:59,379 [1] FATAL - Assemblies required by Provider are not found 
System.IO.FileNotFoundException: Could not load file or assembly 'BusinessObjects, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 
File name: 'BusinessObjects, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null' 

=== Pre-bind state information === 
LOG: User = <redacted> 
LOG: DisplayName = BusinessObjects, Version=1.5.0.0, Culture=neutral, Public 
KeyToken=null 
(Fully-specified) 
LOG: Appbase = file:///C:/MSMQ/DistributionService/ 
LOG: Initial PrivatePath = NULL 
Calling assembly : DistributedServicePropertyComponents, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in default load context. 
LOG: Using application configuration file: C:\MSMQ\DistributionService\Distr 
ibutionService.exe.Config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\ 
v4.0.30319\config\machine.config. 
LOG: Policy not being applied to reference at this time (private, custom, partia 
l, or location-based assembly bind). 
LOG: The same bind was seen before, and was failed with hr = 0x80070002. 

2012-11-02 10:46:59,401 [1] FATAL - Assemblies required by Provider are not found 
System.IO.FileNotFoundException: Could not load file or assembly 'BusinessObjects, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 
File name: 'BusinessObjects, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null' 

=== Pre-bind state information === 
LOG: User = B2B\addisona 
LOG: DisplayName = BusinessObjects, Version=1.5.0.0, Culture=neutral, Public 
KeyToken=null 
(Fully-specified) 
LOG: Appbase = file:///C:/MSMQ/DistributionService/ 
LOG: Initial PrivatePath = NULL 
Calling assembly : DistributedServicePropertyComponents, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in default load context. 
LOG: Using application configuration file: C:\MSMQ\DistributionService\DistributionService.exe.Config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\ 
v4.0.30319\config\machine.config. 
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). 
LOG: The same bind was seen before, and was failed with hr = 0x80070002. 

मेरा मानना ​​है कि इस MSDN पर एक सवाल के समान है: http://social.msdn.microsoft.com/Forums/en-US/MEFramework/thread/b34ef4f4-e1f1-4f06-bd42-d7b3d5060f6f/ - लेकिन मैं इस सवाल का जवाब समझ में नहीं आता।

क्या कोई समस्या नहीं है, या समस्या का समाधान करने के लिए कोई रास्ता प्रदान करने का कोई तरीका है?

हमने हाल ही में इस समस्या को अभी शुरू कर दिया है, लेकिन मुझे हमारे स्रोत नियंत्रण इतिहास में किसी भी बदलाव की उम्मीद नहीं है।

+0

क्या आप हस्ताक्षरित (या देरी से हस्ताक्षरित) कोड से असेंबली लोड करने का प्रयास कर रहे हैं? –

+0

जहां तक ​​मुझे पता है, हस्ताक्षरित कोड शामिल नहीं है (ढांचे पुस्तकालयों को छोड़कर)। – penguat

+0

फिर आप 32 बिट कोड से 64 बिट असेंबली लोड करने की कोशिश कर रहे हैं? –

उत्तर

1

आपके एक या अधिक प्लगइन BusinessObjects असेंबली पर निर्भर हैं, जबकि आपका होस्ट एप्लिकेशन इस असेंबली का संदर्भ नहीं देता है। आप इसे ठीक करने के लिए निम्न में से कोई भी कर सकते हैं:

  1. इस मुख्य असेंबली से इस असेंबली का संदर्भ जोड़ें, ताकि प्लगइन लोड होने पर इसका उपयोग कर सकें।
  2. इस असेंबली को अपने सी में जोड़ें: \ MSMQ \ Providers निर्देशिका, ताकि जब प्लगइन लोड हो जाएं और उस असेंबली को देखें, तो वे इसे ढूंढ सकते हैं और इसे भी लोड कर सकते हैं।
+4

यह असेंबली सी: \ MSMQ \ प्रदाता निर्देशिका में है, और नहीं मिल रही है। – penguat

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