कहें कि मेरे पास दो परियोजनाएं हैं, पी 4 और पी 3, क्रमश: नेट 4.0 और 3.5 लक्ष्य।क्या मेरा .Net ऐप एक .net फ्रेमवर्क लाइब्रेरी के दो अलग-अलग संस्करणों का संदर्भ दे सकता है?
प्रत्येक प्रोजेक्ट में System.Data का संदर्भ भी है। पी 4 के मामले में, यह System.Data v4.0.0.0 पी 3 के मामले में करने के लिए किया जाएगा, यह System.Data v2.0.0.0 करने के लिए किया जाएगा
परियोजना पी 4 भी पी 3 संदर्भ देता है।
यदि पी 4 लोड और निष्पादित किया गया है, तो यह .NET 4.0 सीएलआर का उपयोग करता है। रनटाइम पर, System.Data के संदर्भ P4 और P3 दोनों के अंदर v4.0 को हल करने लगते हैं। मैं असेंबली बाइंडिंग रीडायरेक्ट का उपयोग कर इसे ओवरराइड कर सकता हूं, लेकिन फिर पी 4 और पी 3 दोनों v2.0 को हल कर सकते हैं।
क्या कोई तरीका है कि मैं अपना आवेदन कॉन्फ़िगर कर सकता हूं ताकि पी 4 v4.0 और P3 का उपयोग v2.0 का उपयोग करता हो?
मैंने कोशिश की है, लेकिन बिना किसी किस्मत के। पी 3 अभी भी v4.0 चलाता है। क्या आपको पता है कि पी 3 के लिए उत्पन्न असेंबली में इस सेटिंग का कोई दृश्य प्रभाव होगा? जैसे मेनिफेस्ट कहता है ".ver 2: 0: 0: 0" चाहे "विशिष्ट संस्करण" सत्य पर सेट है या नहीं। – Rob
हां - यही वह है जो मैंने सेब की सलाह के बाद किया था। मुझे स्टार्टअप टैग में एक विशेषता के रूप में उपयोग LegacyV2RuntimeActivationPolicy = "true" निर्दिष्ट करने की भी आवश्यकता है। अन्यथा यह अनचाहे अपवाद के साथ दुर्घटनाग्रस्त हो गया: System.BadImageFormatException – Rob
बहुत बढ़िया। उनका लिंक मुझे कॉन्फ़िगरेशन के बारे में याद दिलाता था, इसलिए निश्चित रूप से उसका जवाब स्वीकार करता था। – Randolpho