تجميعات مستهلكة للتعليمات البرمجية C# 2.0 تم تجميعها باستخدام C# 3.0

StackOverflow https://stackoverflow.com/questions/9508

  •  08-06-2019
  •  | 
  •  

سؤال

يجب أن يكون هذا أمرًا جيدًا لأن CLR لم يتغير فعليًا؟

المربعات التي تعمل برمز C# 2.0 يملك تم طرح .NET 3.5.

الخلفية هي أن لدينا خدمة Windows (.NET 2.0 exe ​​تم إنشاؤها باستخدام VS2005، وتم نشرها على 150 خادمًا تقريبًا) تقوم بتحميل التجميعات ديناميكيًا (مثل المكونات الإضافية تقريبًا) لإكمال عناصر العمل المختلفة المطلوبة منها.عندما نطرح إصدارًا جديدًا من منطق الناقل، فإننا نقوم فقط بإسقاط التجميعات على خادم FTP وتعرف خدمة Windows كيفية التحقق من أحدث الإصدارات والحصول عليها وتخزينها.يتم الآن إنشاء التجميعات الجديدة باستخدام VS2008 واستهداف .NET 2.0، ونحن نعلم أن ذلك يعمل بشكل جيد.ومع ذلك، نود البدء في الاستفادة من ميزات لغة C# 3.0 مثل LINQ واستهداف التجميعات مقابل .NET 3.5 دون الحاجة إلى إنشاء إصدار جديد من خدمة Windows ونشره.

هل كانت مفيدة؟

المحلول

يضيف C#3 و.Net 3.5 تجميعات جديدة، لكن IL لم يتغير.

هذا يعني أنه باستخدام تجميعات .Net 2، يمكنك تجميع واستخدام C#3، طالما أنك لا تستخدم Linq أو أي شيء آخر يشير إلى System.Linq أو System.Core.

yield, var, وصياغة لامدا والأنواع المجهولة والمهيئات كلها ذكاء المترجم.إن IL الذي ينتجونه متوافق بشكل متقاطع.

إذا كان بإمكانك الرجوع إلى التجميعات الجديدة للإصدار 3.5، فيجب أن تعمل جميعها.

لا يوجد إصدار جديد من ASP.Net - يجب أن يظل 2.0.50727 - ولكن لا يزال يتعين عليك الترجمة للإصدار 3.5

نصائح أخرى

العائد ، var ، syntax lambda ، أنواع Anon و initialiSers كلها ذكاء التحويل البرمجي.IL التي تنتجها متوافقة مع.

نقطة انتقاء بسيطة، ولكن العائد كان ميزة 2.0 على أي حال.

هذه أشياء مثيرة للاهتمام.كنت انظر إلى LinqBridge بالأمس بعد أن اقترح عليّ أحد الأشخاص في هذا المنتدى ذلك وهم يفعلون شيئًا مشابهًا.

أجد أنه من الغريب أن تقوم Microsoft بتسمية أطر العمل 2.0 و3.0 و3.5 عندما يتم تجميعها جميعًا لإنتاج نفس IL الذي يتطلبه الإصدار 2.0 CLR.كنت أعتقد أن إضافة الإصدارات إلى الإصدار 2.0 سيكون أكثر منطقية على الرغم من أنني أفترض أنه من الصعب أيضًا إقناع الأشخاص بحقيقة وجود إصدارات مختلفة من أوقات التشغيل والمترجمين واللغات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top