سؤال

أثناء إعداد CruiseControl، قمت بإضافة كتلة buildpublisher إلى مهام الناشر:

<buildpublisher>
  <sourceDir>C:\MyBuild\</sourceDir>
  <publishDir>C:\MyBuildPublished\</publishDir>
  <alwaysPublish>false</alwaysPublish>
</buildpublisher> 

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

هل يعرف أي شخص طريقة لتصفية هذا، أو هل أحتاج إلى إعداد مهمة لتشغيل برنامج RoboCopy النصي بدلاً من ذلك؟

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

المحلول

لقد قمت بإعداد مهمة للقيام بذلك.لست على علم بأي طريقة لجعل CruiseControl محددًا إلى هذا الحد.عادةً ما أقوم فقط بربط ملف دفعي للقيام بالنسخة إلى مهمة CC.net.

نصائح أخرى

لست متأكدًا من مشروع الويب، ولكن بالنسبة لتطبيق winforms الخاص بنا، يمكنك الحصول على TargetOutputs من مهمة MSBuild كما يلي:

<MSBuild Projects="@(VSProjects)"
  Properties="Configuration=$(Configuration)">
  <Output TaskParameter="TargetOutputs" ItemName="BuildTargetOutputs"/>
</MSBuild>

ثم قم بعمل نسخة:

<Copy SourceFiles="@(BuildTargetOutputs)" 
  DestinationFolder="bin"
  SkipUnchangedFiles="true" />

لست متأكدًا من ماهية TargetOutputs لمشروع ويب، ولكن بالنسبة لمكتبات winforms والفئات، فهي .dll أو .exe.

لا يوفر ناشر البناء الافتراضي في CC.NET طريقة للقيام بذلك.لديك بعض الخيارات:

  • قم بإنشاء ناشر البناء الخاص بك بالوظيفة المطلوبة
  • قم بإنشاء مهمة NAnt/MSBuild مخصصة
  • استخدم تقنية البرمجة النصية (RoboCopy، ملف دفعي، وما إلى ذلك) لإنشاء ملف نصي وتشغيل مهمة "قابلة للتنفيذ" لـ CC.NET، أو مهمة "exec" لـ NAnt/MSBuild

يمكن استخدام مهمة CC.Net Powershell لهذا أيضًا.

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