2015-06-02 4 views
9

मैंने खुद को कोडिंग सिखाई, और मुझे यकीन नहीं है कि यह संभव है या नहीं। न तो मुझे पता है कि मैं यहां जो कुछ पूछता हूं वह कुछ नाम से जाता है (उदा .: "जो आप पूछते हैं उसे xxxxxx कहा जाता है")। मुझे इस विषय पर कुछ भी नहीं मिला (लेकिन कुछ अपग्रेड आलेख मिल गए, जो कि मैं बिल्कुल नहीं चाहता हूं, इसलिए कृपया मुझे क्षमा करें अगर यह कट्टर कोडर को एनओयूबी प्रश्न की तरह लगता है; मैं एक नौसिखिया हूं)।क्या सी # प्रोजेक्ट के लिए एकाधिक .NET संस्करणों का उपयोग करना संभव है?

मेरे पास एक छोटी परियोजना थी जो कुछ बाहरी पुस्तकालयों को शामिल करने के कारण .NET 2.0 पर निर्भर थी। सॉफ्टवेयर अच्छी तरह से काम किया, लेकिन अब इसे अतिरिक्त कार्यक्षमता की जरूरत है; चीजें जो .NET 4.0 या 4.5 के तहत प्रोग्राम के लिए अधिक आसान होंगी।

हालांकि, बाहरी पुस्तकालय शामिल है .NET स्तर पर नहीं है, इसलिए अब मुझे आश्चर्य है: क्या एक प्रोजेक्ट में एकाधिक .NET संस्करण हो सकते हैं?

मुझे यकीन नहीं है लेकिन यह भी सोच रहा था कि मैं केवल एक नया डीएल लिखता हूं जो डीईटी के रूप में लिखता है जो .NET 4.5 पर निर्भर करता है, जिसमें मैं अपने सार्वजनिक कार्यों को एक अलग परियोजना में लिखता हूं, फिर बाद में मेरे अंतिम फाइनल में शामिल होता है prj जो .NET 2.0 पर निर्भर करता है ... सुनिश्चित नहीं है कि यह जाने का तरीका होगा या नहीं।

+0

जो मैंने माइक्रोसॉफ्ट रिपॉजिटरीज़ में देखा है, उनके पास प्रत्येक .NET संस्करण के लिए अलग-अलग परियोजनाएं हैं जिन्हें वे समर्थन देना चाहते हैं .... –

+0

क्या आप किसी भी लाइब्रेरी का उपयोग करने में सक्षम नहीं होना चाहिए जो कम (या बराबर पर निर्भर करता है) नेट संस्करण? – germi

+9

मिश्रित मोड असेंबली के अपवाद के साथ, मैं .NET 2.0 पर बनाए गए असेंबली की अपेक्षा करता हूं, आमतौर पर केवल .NET 4.0 या 4.5 में काम करता है ... –

उत्तर

1

ऐसा लगता है कि आप देख रहे हैं की तरह साइड-बाई-साइड निष्पादन के लिए, विशेष रूप से इन-प्रक्रिया साइड-बाई-साइड निष्पादन:

In-Process Side-by-Side execution

7

हाँ, आप नेट एक में 2 विधानसभाओं शामिल कर सकते हैं। नेट 4 या .NET 4.5 प्रोजेक्ट (या यदि आप करेंगे तो कोई संस्करण)। .NET 2 प्रोजेक्ट में .NET 4 असेंबली सहित काम नहीं करेगा।

यदि आप मूल परियोजना में नई सुविधाओं का उपयोग करना चाहते हैं, तो आपको उस पर निर्भर सभी परियोजनाओं को अपग्रेड करना होगा। सुनिश्चित करें कि पूरा पेड़ .NET 4 का समर्थन करता है (उदाहरण के लिए Office एड-इन्स, या अन्य संबंधित सॉफ़्टवेयर जिसका आप उपयोग कर सकते हैं)।

एक अपवाद mixed-mode assemblies (विधानसभाओं कि दोनों नेट और अप्रबंधित कोड का उपयोग) है, जो CLR के लिए और अधिक तंग कर रहे हैं का उपयोग है और वे problems due to the activity policy (MSDN) के कारण हो सकता।

+0

वी 2 मिश्रित-मोड असेंबली को वी 4 रनटाइम के तहत काम करने के लिए बनाया जा सकता है। LegacyV2RuntimeActivationPolicy: https://msdn.microsoft.com/en-us/library/ bbx34a2h.aspx –

+0

@ जोनाथन डिकिंसन: दरअसल। सक्रियण नीति के तहत लिंक देखें। एमएसडीएन लिंक जोड़ा गया। –

+0

क्या आपका मतलब है कि मेरा मुख्य ऐप v4 में परिवर्तित होना है, जबकि मुझे v4 में कुछ प्रकार की विशेष नीति में v2 में दिनचर्या रखना है? – user613326

2

आप केवल एक .NET संस्करण का उपयोग कर सकते हैं, और यही वह संस्करण है जिसका उपयोग आपके प्राथमिक एप्लिकेशन को (या कॉन्फ़िगर किया गया है) का उपयोग करने के लिए आवश्यक है। हालांकि, .NET पुराने संस्करणों के साथ काफी हद तक संगत है और अक्सर ढांचे के नए संस्करणों में अपरिवर्तित पुरानी असेंबली चला सकता है।

तो आपका ऐप .NET 4 या 4.5 चल रहा है, फिर भी आप .NET 2 के लिए लिखे गए असेंबली (या पुस्तकालय) का उपयोग कर सकते हैं (हालांकि कुछ प्रतिबंध लागू हो सकते हैं, जैसा कि अन्य ने उल्लेख किया है)। वे असेंबली सिर्फ 4.5 सीएलआर के तहत चलती हैं (माना जाता है कि उनके साथ कोई पिछड़ा संगतता समस्या नहीं है), जो दुर्लभ है लेकिन ऐसा होता है)।

लेकिन याद रखने की कुंजी, आपका चलाना एप्लिकेशन किसी भी निहित असेंबली के उच्चतम संस्करण पर होना चाहिए। मतलब, यदि आपके पास 4.5 असेंबली हैं, तो आप 2.0 ऐप के रूप में अपना ऐप नहीं चला सकते हैं। यह चारों ओर एक और तरीका होना चाहिए।

0

हाँ, आप शामिल कर सकते हैं। यही सीएलएस डू

यदि आप मूल परियोजना में नई सुविधाओं का उपयोग करना चाहते हैं, तो आपको इसके आधार पर सभी परियोजनाओं को अपग्रेड करना होगा।

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

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