سؤال

ما هي الطريقة الصحيحة لتضمين إخراج بناء واحد كثنائي في بناء آخر؟

دعنا نقول أن لدي حل يسمى companyname.domain (طبقة المجال الخاصة بي). لقد قمت بإعدادها كمبني ويبني ليلا.

الآن أريد إضافة محلول يسمى Sonproject.Web. وأريد أن أدرج ثنائي من companyname.domin إلى مجلد ثنائيات على مستوى نظير مع الحل الخاص بي. ثم المشروع Sonprojects.web إشارة إلى Binaries companyname.domain.dll ستعمل.

ما هي أفضل الممارسات للقيام بذلك؟ أعرف شخصا قال إنهم يحاولون القيام بذلك مع المتفرعة. أنا إجمالي "تحكم المصدر" Newb. ولكن شيء عن هذا يبدو خطأ.

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

المحلول

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

يسمح لنا هذا بمشاركة جميع مكتباتنا الداخلية (بالإضافة إلى أي مكتبات من الأحزاب الثالثة التي نستخدمها) من موقع موحد واحد، ويمكن أن تكون جميع مكتباتنا مسبقا، مما يوفر ديفنسز الاضطرار إلى بناء لهم إذا لم يغيروا شيئا في الواقع في الواقع ليبس.

احرص على الإطلاق المرجعي فقط يبني لمكتباتك (الاستثناء الوحيد الذي يتعين علينا ذلك هو أن لدينا مكتبة من مساعدو تصحيح الأخطاء التي تم تجميعها مشرويا في Builds Builds فقط، ويجب علينا الرجوع إلى إصدار Debug الخاص به خلاف ذلك تم تجميعها من البرنامج حتى في Bredug Builds!)

ملاحظة أخيرة: تجنب المتفرعة إلا إذا لم يكن هناك بديل معقول.

نصائح أخرى

تقوم شركتي بذلك عن طريق إنشاء مجلد "مراجع" لعقد جميع ملفات .dll اللازمة لبناء التجميعات المشار إليها خارجيا، حيث لا يتم حفظ مجلد BIN في الواقع ضمن عنصر تحكم المصدر.

نحن نستخدم ال TFS التبعية المكررة, ، والتي يمكنها نسخ الملفات إلى أي مشروع في TFS بعد بناء المشروع. ليس لديه وثائق رائعة حقيقية، ولكن يبدو أن تفعل ما يفترض أن تحصل عليه بعد إعداده.

بلوق بريد تنفيذ النسخ المتماثل التبعية مع بناء فريق TFS توصي بإعداد سيناريو متفرع للمساعدة مع تتبع المشاريع التي تستخدمها التبعيات، مما يجعلني منطقي أيضا.

عابي مشابه لتلك الملصقات الأخرى.

قل لدي مشروعين، اتصل بهم Coreproject و AppProject. يشارك Coreproject. يحتوي AppProjjject على مجلد يسمى SharedBinaries. هذا هو المكان الذي تشير فيه جميع مراجع التجمع إلى.

تم تكوين البرنامج النصي TFSBUILD الخاص بي ل CoreProject للقيام بما يلي:

-الحصول على اخر الاشياء

-Build إسقاط إلى منطقة إسقاط (شيء مثل server dropzone coreprojectbuildnumber)

يتم نسخ -Drop إلى مجلد في منطقة الانخفاض (شيء مثل Server dropzone Latest CoreProject)

تم تكوين البرنامج النصي TFSBUILD ل AppProject للقيام بما يلي:

-الحصول على اخر الاشياء

تحقق من الملفات في مجلد SharedBinaries

الملفات -Copy من Server dropzone Latest CoreProject

-يبني

-دروب لإسقاط المنطقة (شيء مثل server dropzone appprojectbuildnumbernumber)

- إذا نجح الإنشاء، فسيتم نسخ البناء إلى منطقة إسقاط مجلد (شيء مثل Server dropzone Latest Appproject) ويتم فحص الملفات الموجودة في المشاركات

إذا فشل البناء في أن الملفات التي تم نسخها في المشاركات لديها تسجيل الخروج.

لقد وجدت أن هذا يعمل بشكل جيد حقا. يستعمل AppProject دائما مع معظم البتات الحالية من Coreproject، لذلك نحن نعرف على الفور إذا كان هناك تغيير كسر. من خلال إجراء مشاركات تم فحصها في TFS، يمكنني الحصول على نسخة محددة وتشغيل التعليمات البرمجية بنفس DLLs من CoreProject التي تم استخدامها في ذلك الوقت. كما أنني يجب أن أحصل على أحدث وآشتي المحلية هي المبنى مع أحدث بت أيضا.

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