2010-03-12 11 views
38

हमारे कोडबेस जहां मैं काम करता हूं .NET 2.0 है। हमारी नई असेंबली/डीएलएल/वेब अनुप्रयोगों के लिए मुझे 3.5 का प्रस्ताव देने का लाभ उठाना अच्छा लगेगा।क्या आप समाधान में .NET Framework संस्करणों को मिश्रित कर सकते हैं?

एक एक समाधान में नेट चौखटे (विधानसभा के अनुसार) कर सकते हैं? क्या इसमें कोई आईआईएस संबंधित चेतावनी है?

मुझे किसी भी सकारात्मक/नकारात्मक/प्रतिक्रिया प्रतिक्रिया को सुनना अच्छा लगेगा। मुझे बताएं!

धन्यवाद!

उत्तर

18

हाँ, आप दृश्य स्टूडियो में ऐसा कर सकते हैं और यह मल्टी लक्ष्य निर्धारण कहा जाता है।

स्कॉट गुथरी Multi-Targeting Support in Visual Studio पर एक बड़ा ब्लॉग प्रविष्टि है।

2008 वी.एस. कि शामिल नेट के लिए बहु को लक्षित समर्थन दृश्य स्टूडियो की पहली फिल्म थी। क्या इसका मतलब है आप 2008 वी.एस. इस्तेमाल कर सकते हैं बनाने के लिए और न केवल .NET 3.5 परियोजनाओं, लेकिन यह भी .NET 3.0 और .NET 2.0 परियोजनाओं के रूप में अच्छी तरह से संपादित कि था। यह अनुमति डेवलपर्स के लिए और अधिक तेजी से उन्नयन और नए दृश्य स्टूडियो टूलींग सुविधाओं का लाभ ले - जरूरी नेट के नए संस्करण की आवश्यकता के लिए ग्राहकों और उनके अनुप्रयोगों को चलाने उत्पादन सर्वर पर स्थापित किया बिना ।

चीयर्स

+0

और यदि आप पुरानी परियोजनाओं को बिना छूटे छोड़ना चाहते हैं, तो आप एक समाधान में 3.5 असेंबली/परियोजना के साथ निश्चित रूप से 2.0 असेंबली कर सकते हैं। जहां तक ​​आईआईएस का संबंध है, आपको सर्वर पर 3.5 फ्रेमवर्क (3.5 सर्विस पैक 1 भी स्थापित) होना चाहिए। किसी भी मुद्दे के बिना 2.0, 3.0, और 3.5 ढांचे को एक साथ स्थापित किया जा सकता है। – intoOrbit

+1

यही कारण है कि मैं stackoverflow प्यार करता हूँ। लिंक और स्पष्टीकरण के लिए धन्यवाद! – Micah

+11

अच्छा, जवाब, लेकिन यह सवाल नहीं है कि पोस्टर ने पूछा - उन्होंने ** उसी असेंबली ** – Justin

3

संपादित करें: मैं गलत आप कर सकते हैं किया गया था। आप संदर्भ 3 पर जा सकते हैं 3. 2.0 में असेंबली, क्योंकि सीएलआर वही है। 2.0/3. + से 4.0 तक जाने पर यह मामला नहीं होगा क्योंकि सीएलआर का एक नया संस्करण है।

http://abdullin.com/how-to-use-net-35-syntax-and-compiler-features-for-net-20/

+0

जहां तक ​​मैं देख सकता हूं, यह पूरी तरह से अन्य तरीकों से संभव है, लेकिन 2.0 परियोजना में 3.5 प्रोजेक्ट में संदर्भ जोड़ने पर आपको चेतावनियां मिलेंगी। इसके अलावा, संदर्भित 3.5 कोड के परिणामस्वरूप त्रुटियां हो सकती हैं लेकिन मुझे इसके बारे में निश्चित नहीं है। – Webleeuw

+0

यह सख्ती से सच नहीं है। 2.0, 3.0 और 3.5 सभी एक ही 2.0 सीएलआर पर चलते हैं। (सर्विस पैक इत्यादि को अनदेखा कर रहा है)। 2.0 कोड से 3.5 असेंबली का उपयोग करना पूरी तरह से संभव है बशर्ते आप सर्विस पैक में से किसी भी बदलाव पर निर्भर न हों। आप इसे सीधे दृश्य स्टूडियो में कर सकते हैं, यह आपको केवल एक चेतावनी देता है। मुझे संदेह है कि यह आधिकारिक तौर पर समर्थित है लेकिन यह काम करता है, 2.0 से लिंक जैसी चीजें करना भी संभव है बशर्ते आप आवश्यक असेंबली को मैन्युअल रूप से ढूंढें और संदर्भ दें। –

+0

हाँ, वह मेरे बारे में मूर्ख था। मैं 1.0 से 2.0 तक जाने के बारे में सोच रहा था। – kemiller2002

3

आप नए .NET 4.0 ढांचे के लिए इंतजार कर सकते हैं, तो आप एक ही प्रक्रिया में कंधे से dll प्रत्येक संस्करण के पक्ष के लिए के चलाने के लिए सक्षम हो जाएगा।

+2

में नेट फ्रेमवर्क के कई संस्करणों का उपयोग करने के बारे में पूछा। यह वह नहीं है जो वह पूछ रहा है। 3.5 और 2.0 दोनों 2.0 सीएलआर पर चलते हैं, इसलिए सीएलआर लोडिंग की तरफ से कोई भी पक्ष की आवश्यकता नहीं है। –

+1

@ अस्थिर, अच्छा लगता है, और ऐसा लगता है, लेकिन केवल सुरक्षित पक्ष पर रहने के लिए, क्या आपके पास एक एमएसडीएन लिंक है जहां यह दस्तावेज है कि इस कार्यक्षमता की गारंटी है? – RenniePet

+0

कोई बात नहीं, मुझे लगता है कि मुझे प्रासंगिक दस्तावेज़ मिला है: http://msdn.microsoft.com/en-us/library/ff602939.aspx – RenniePet

2

यह कोई मुद्दा नहीं होना चाहिए। .NET 2.0 SPM के माध्यम से .NET 2.0 RTM सभी सीएलआर के सटीक संस्करण का उपयोग करते हैं। वे केवल शामिल असेंबली की संख्या से भिन्न होते हैं। असेंबली प्रारूप वही है। बेशक, यदि आप किसी असेंबली का लाभ उठाते हैं जो केवल .NET 3.5 के साथ शामिल है, तो आपको यह सुनिश्चित करना होगा कि 3.5 वास्तव में लक्ष्य मशीन पर स्थापित है। यदि यह नहीं है तो आप जल्दी से पता लगाएंगे।

3.5 विंडोज अपडेट सक्षम होने पर पहले से ही मशीन पर होना चाहिए। यदि नहीं, तो वहां पहुंचने में एक दर्जन या मिनट लगते हैं।

2

एक तरफ ध्यान दें के रूप में, हम कुछ पुराने 1.0 पुस्तकालयों है कि हम 2.0 में प्रयोग किया जाता है और अभी भी 3.5 में उपयोग करते हैं, recompiling के बिना है। तो वहाँ कुछ पिछड़ा संगतता है।

+0

और 4.0 में, बिना किसी संकलन के ... मेरा, कैसे समय पर चलता है। – quillbreaker

1

आप नेट 1.1 assmeblies एक नेट 2.0+ विधानसभा के समान प्रक्रिया में चल रहा है नहीं कर सकते हैं - ऐसा करने के लिए एक विफलता का उत्पादन करेगा प्रयास में।

आईआईएस के संबंध में, इसका मतलब है कि आपके पास .NET 1.1 साइट्स/वर्चुअल निर्देशिकाएं उसी एप्लिकेशन पूल में नहीं चल रही हैं जैसे .NET 2.0 और ऊपर की साइटें - आपको .Net 1 रखने के लिए एक अलग ऐप पूल बनाना होगा ।1 कोड एक अलग प्रक्रिया में चल रहा है। (यह केवल आईआईएस 6.0 और ऊपर, यानी विंडोज एक्सपी में नहीं किया जा सकता है)

हालांकि नोबगेज कहता है - .NET 2.0 से .NET 3.5 सभी एक ही सीएलआर का उपयोग करते हैं, और नेट कोड के विभिन्न संस्करण चिंता के बिना एक ही असेंबली में मिश्रित रहें - यह आईआईएस के लिए भी सच है (नेट 2.0 और नेट 3.5 कोड एक ही ऐप पूल में खुशी से सह-अस्तित्व में हो सकता है)

+0

"आपके पास .NET 2.0+ असेंबली एक ही प्रक्रिया में चल रहे हैं .Net 2.0+ असेंबली के रूप में नहीं हो सकता है" - हाँ आप कर सकते हैं - बशर्ते आप .NET 2.0 CLR का उपयोग कर रहे हों। – Joe

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