2013-03-18 3 views
6

के पुराने संस्करण को प्रतिबिंबित करना मेरे पास एक बिल्ड गतिविधि है जो डोमेन लाइब्रेरी के विरुद्ध इसकी तुलना करने के लिए हमारे पुस्तकालयों में से एक को दर्शाती है। प्रतिबिंब, जब भी मैं उरी प्रतिबिंबित करने के लिए यह उरी के बजाय RunTimePropertyInfo के रूप में वापस आती है और जब भी मैं परिलक्षित गुण मैं एक अपवाद बताते हुए मिल के किसी भी जाँच की कोशिश ...System.dll

"Could not load file or assembly 'System, Version=2.0.5.0, culture=neutral, publickeytoken=7cec85d7bea7798e, retargetable=yes" 

निर्माण गतिविधि System.dll साथ संकलित किया गया है के दौरान संस्करण 4.0.0.0। मुझे संदेह है कि यह मुद्दा है। System.dll के पुराने संस्करण पर किसी प्रकार को प्रतिबिंबित करने का कोई तरीका है।

अब तक यह केवल उरी के साथ असफल रहा है। कोई विचार?

+0

मैंने अपनी build action को उसी system.dll पर पुनर्स्थापित करने का प्रयास किया लेकिन इसका कोई प्रभाव नहीं पड़ा। यह ध्यान देने योग्य है कि System.dll का संस्करण जो लाइब्रेरी मैं प्रतिबिंबित कर रहा हूं वह .NET 4 पोर्टेबल लाइब्रेरी से है। – Robert

+1

आप फ्रेमवर्क लक्ष्य मिश्रण कर रहे हैं, जो कभी भी अच्छी तरह से काम नहीं करता है। 2.0.5.0 एक सिल्वरलाइट संस्करण संख्या है। –

उत्तर

0

मुझे लगता है कि संस्करण समस्या है, यदि आप उस मामले में प्रोजेक्ट में उपयोग किए जाने वाले डीएल के भिन्न संस्करण का उपयोग कर रहे हैं तो ऐसी त्रुटि हो सकती है।

यहां एक आसान समाधान है जो मेरे लिए अतीत में काम करता है, यदि कोई समस्या है तो यह आपके लिए काम करेगा। आप समस्याग्रस्त डीएल के पुराने और नए संस्करण को परिभाषित करके "बाइंडिंग रीडरेक्ट" वेब.config में टैग का उपयोग कर सकते हैं। तो इसका मतलब है कि यह डीएलएल संदर्भ के पुराने संस्करण को अनदेखा कर देगा और यदि पाया जाता है तो नए का उपयोग करें। और त्रुटि उत्पन्न नहीं करेगा।

यहाँ संदर्भ कड़ी है। http://msdn.microsoft.com/en-us/library/eftw1fys%28v=vs.71%29.aspx

+0

धन्यवाद, मैंने आपके सुझाव की कोशिश की लेकिन इससे मदद नहीं मिली। मुझे लगता है कि मुझे ऐसा करने की ज़रूरत है, जब नया न हो तो पुराने डीएल को उठाएं। – Robert

+0

क्या आप अपना कोड यहां कॉपी कर सकते हैं जो आपने web.config में लिखा है? यह समस्या तब काम करनी चाहिए जब समस्या केवल –

+0

संस्करण से संबंधित है, यह न केवल संस्करण से जुड़ा हो सकता है। यह केवल एक डेटा प्रकार 'उरी' पर होता है। मैं इसके लिए अपने लॉग में एक आइटम लगाने जा रहा हूं और ऐसा होने पर इसे छोड़ देता हूं। यह हमारी जरूरतों को पूरा करेगा। फिर भी आपकी सहायता के लिए धन्यवाद। – Robert

0

आप IKVM.Reflection की तरह कुछ का उपयोग करने की आवश्यकता है,

http://weblog.ikvm.net/PermaLink.aspx?guid=d0dc2476-471b-45f3-96bf-a90bc2f5800b

माइक्रोसॉफ्ट के प्रतिबिंब की मेजबानी .नेट फ्रेमवर्क से जुड़ा हुआ है, तो आप मुख्य लाइब्रेरीज के एक पुराने संस्करण के रूप में की कामना लोड नहीं कर सकता।

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