2008-08-13 11 views
11

के साथ संकलित यह ठीक दिखना चाहिए क्योंकि सीएलआर वास्तव में नहीं बदला गया है?सी # 3.0 कोड उपभोग करने वाली असेंबली सी # 3.0

सी # 2.0 कोड चलाने वाले बक्से में .NET 3.5 लुढ़का हुआ था।

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

उत्तर

7

सी # 3 और नेट 3.5 नई असेंबली जोड़ता है, लेकिन आईएल अपरिवर्तित है।

इसका मतलब है कि नेट 2 विधानसभाओं के साथ संकलन और सी # 3 का उपयोग कर सकते हैं, जब तक आप का उपयोग नहीं करते के रूप में Linq वरना कि System.Linq या System.Core

yield, var का संदर्भ कुछ भी, लैम्ब्डा सिंटैक्स, एनन प्रकार और प्रारंभिक सभी कंपाइलर चतुरता हैं। आईएल वे उत्पादन पार संगत है।

यदि आप 3.5 के लिए नई असेंबली का संदर्भ दे सकते हैं तो यह सब सिर्फ काम करना चाहिए।

ASP.Net का कोई नया संस्करण नहीं है - यह अभी भी 2.0.50727 होना चाहिए - लेकिन आप अभी भी के लिए 3.5

1

यह दिलचस्प सामान है संकलन चाहिए। मैं इस मंच पर किसी के सुझाव के बाद कल LinqBridge पर देख रहा था और वे एक समान काम कर रहे हैं।

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

2

उपज, वर, लैम्ब्डा वाक्य रचना, anon प्रकार और initialisers सभी संकलक चालाकी कर रहे हैं। आईएल वे उत्पादित करते हैं क्रॉस-संगत।

माइनर नाइट-पिकिंग पॉइंट, लेकिन उपज एक 2.0 फीचर वैसे भी थी।