سؤال

نحن نحافظ على تطبيق Windows متوسط ​​الحجم تم تطويره في vb/c# .net قيد العمل.لا تزال عملية الإنشاء والنشر لهذا التطبيق يدوية.أنا مصمم على جعل هذه العملية آلية باستخدام MSBuild الذي ليس لدي أي معرفة به حتى الآن.

يحتوي تطبيقنا على بنية بناء بسيطة، ومجموعة من المشاريع مجمعة بالفعل في أربعة حلول (.sln) وتحتاج فقط إلى بناء slns الأربعة بالترتيب.ثم قم بنشر المشروع (الذي يعد جزءًا من آخر sln سيتم إنشاؤه) إلى الدليل.هذا هو.عملية بسيطة تستهلك بالفعل 30 دقيقة من وقت الإنشاء اليدوي وأنا متأكد تمامًا من أنه يمكن تحقيق ذلك دون تدخل يدوي باستخدام msbuild في 1/4 من الوقت على الأقل.

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

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

المحلول

يبدو هذا وكأنه نص سهل جدًا للكتابة.حتى الملف الدفعي سيفعل:

msbuild \path\to\first.sln /p:Configuration=Release
msbuild \path\to\second.sln /p:Configuration=Release
msbuild \path\to\third.sln /p:Configuration=Release
msbuild \path\to\fourth.sln /p:Configuration=Release
call deploy

وبطبيعة الحال، سيكون من الأفضل بكثير أن يكون هناك خادم قيد التشغيل، على سبيل المثال CruiseControl.NET, ، والتي توفر واجهة ويب في حالة البناء والتاريخ.

في MS Build، هناك نقطتا تحكم رئيسيتان للمتصل:الهدف وخصائصه.الهدف هو ما يجب تجميعه، والموارد، والتجميع، والنشر، وما إلى ذلك.تتحكم الخصائص في كيفية بناء هذا الهدف.

يمكنك التحكم في التكوين باستخدام إعدادات الملكية (انظر أعلاه).إذا قمت بفتح ملفات *.*proj، ستلاحظ ذلك PropertyGroup عناصر.يمكن ضبطها عبر سطر الأوامر باستخدام ملف /p الارجنتين.

فيما يلي مواصفات الوسيطتين:

/target:<targets>  Build these targets in this project. Use a semicolon or a
                 comma to separate multiple targets, or specify each
                 target separately. (Short form: /t)
                 Example:
                   /target:Resources;Compile

/property:<n>=<v>  Set or override these project-level properties. <n> is
                 the property name, and <v> is the property value. Use a
                 semicolon or a comma to separate multiple properties, or
                 specify each property separately. (Short form: /p)
                 Example:
                   /property:WarningLevel=2;OutDir=bin\Debug\

نصائح أخرى

وهنا دليل جيد يحتوي على الكثير من المعلومات الرائعة عن MSBuild والتكامل المستمر وCuriseControl.NET.بالتأكيد مكان جيد للبدء.

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