التجميع .NET 3.5 مشروع باستخدام برنامج التحويل البرمجي .NET 4.0

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

سؤال

لدي حل يحتوي على العديد من المشاريع. أحد مشاريع الاختبار هو استخدام .NET 4.0 بسبب التبعية. يتم استهداف المشروع القابل للنشر الذي أريد إنشاءه مقابل برنامج التحويل البرمجي .NET 3.5. البرنامج النصي الحالي للبناء ليس محببًا بما يكفي لاستهداف المترجمين المختلفين .NET على أساس المشروع. في الأساس ، لا يمكنني استخدام برنامج التحويل البرمجي إلا لكل مشروع في الحل.

هل .NET 4.0 برنامج التحويل البرمجي ذكي بما يكفي لتجميع رمز 3.5؟

هيكل الحل

  • المشروع 1 .NET 3.5 (نشر)
  • المشروع 2 .NET 4.0 (يستخدم للاختبار في دورة البناء الآلية)

ملاحظة: لا يمكنني تجاهل المشروع 2 فقط ، لأن خادم البناء الآلي الخاص بنا يعمل على تشغيل اختبارات الوحدة في المشروع 2. يجب أن تمر جميع الاختبارات قبل نجاح البناء.

تعديل:

أنا لا أقوم بتجميع هذا الرمز داخل Visual Studio. لدينا برنامج نصي بناء مخصص يتم تشغيله خارجيًا إلى Visual Studio. إنه ذكي فقط بما يكفي لاستخدام برنامج التحويل البرمجي 1 .NET. يستخدم هذا المترجم لتجميع جميع المشاريع في حل معين. لا يهتم برنامج Build Script ما إذا كان يتم تعريف المشاريع لتجميعها مقابل 3.5 أو 4.0. بدلاً من ذلك ، يجمعها مع المترجم المحدد.

المشروع 1 لا يشير إلى المشروع 2. المشروع 2 هو مشروع يحتوي على اختبارات الوحدة. تقوم أداة الإنشاء الآلية الخاصة بنا بتجميع المشروع 2 فقط لتشغيل الاختبارات.

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

المحلول

تعديل

أوضح OP أن السؤال هو التعليقات

هل يمكن لمترجم 4.0 تجميع مشروع 3.5

الجواب نعم هذا ممكن جدا.

نصائح أخرى

انقر بزر الماوس الأيمن على مشروع "المشروع 1" في مستكشف الحلول. ثم انقر فوق خصائص (المفتاح الساخن هو alt+enter). ضمن علامة تبويب التطبيق ، يوجد "إطار مستهدف" منسد. اضبط ذلك على 3.5.

الآن عندما تقوم بتجميع (يبدو أنك تستخدم سطر الأوامر) استخدم msbuild ولا تحدد نسخة إطار مستهدفة. فقط قم بتجميع ملف الحل وسيتم تجميع كل مشروع بشكل صحيح.

قد تواجه مشكلات اعتمادًا على أنواع المكتبات التي تستخدمها. على وجه الخصوص ، واجهت مشكلة في مساحات الأسماء/أسماء الفصول الدراسية التي لم تكن موجودة في 3.5 تم تنفيذها في 4.0.

إذا كنت تقوم بشيء باطني مثل تجميع رمز مصدر nhibernate كجزء من الحل الخاص بك ، فستواجه مشكلات. خلاف ذلك ، إذا لم تكن تتخطى أي مساحات أسماء ، فلن تواجه مشكلة في تجميع مشروع 3.5 إلى 4.0.

ما الخطأ في أخذ إجابة بوب؟ هل تستخدم حل بناء مخصص (أي ليس Visual Studio)؟

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