كيف يمكنني مزامنة SVN revision عدد مع ASP.NET موقع على شبكة الإنترنت ؟

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

  •  08-06-2019
  •  | 
  •  

سؤال

تجاوز سعة المكدس لديه التخريب رقم الإصدار في الأسفل:

svn revision:679

أريد أن استخدام هذه الآلية الإصدارات مع .NET Web Site/Application, نماذج Windows, WPD مشاريع الحلول.

كيف يمكنني تنفيذ هذا ؟

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

المحلول

يبدو جيف باستخدام CruiseControl.NET استنادا إلى بعض أثناء تصفحي بودكاست النصوص.هذا يبدو أنه قد الآلي قدرات النشر من مصدر عنصر التحكم إلى الإنتاج.قد يكون هذا فيها إدراج يحدث ؟

نصائح أخرى

ونحن نفعل ذلك مع xUnit.net لدينا الآلي يبني.نستخدم CruiseControl.net (و تحاول الخروج TeamCity).على MSBuild المهمة التي نجري التكامل المستمر تتغير تلقائيا بناء عدد من أجلنا ، إذا نتج عن بناء يحتوي ملف مضغوط بشكل صحيح تعيين إصدار مجموعة من ملفات Dll و السابقين.

لدينا MSBuild الملف يحتوي على UsingTask مرجع DLL التي لا التعبير العادي بدائل:(فنحن نرحب بك لاستخدام هذا DLL, كما انها مشمولة MS-PL الترخيص وكذلك)

  <UsingTask
     AssemblyFile="3rdParty\CodePlex.MSBuildTasks.dll"
     TaskName="CodePlex.MSBuildTasks.RegexReplace"/>

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

 <!-- Cascading attempts to find a build number -->

 <PropertyGroup Condition="'$(BuildNumber)' == ''">
   <BuildNumber>$(BUILD_NUMBER)</BuildNumber>
 </PropertyGroup>
 <PropertyGroup Condition="'$(BuildNumber)' == ''">
   <BuildNumber>$(ccnetlabel)</BuildNumber>
 </PropertyGroup>
 <PropertyGroup Condition="'$(BuildNumber)' == ''">
   <BuildNumber>0</BuildNumber>
 </PropertyGroup>

(نحاول BUILD_NUMBER ، وهو من TeamCity ، ثم ccnetlabel ، CC.net و إذا لم يكن موجودا ، نحن الافتراضي إلى 0 ، حتى نتمكن من اختبار الآلي بناء النصي يدويا.)

المقبل لدينا المهمة التي تحدد بناء عدد في GlobalAssemblyInfo.cs الملف أننا الرابط في جميع مشاريعنا:

 <Target Name="SetVersionNumber">
   <RegexReplace
       Pattern='AssemblyVersion\("(\d+\.\d+\.\d+)\.\d+"\)'
       Replacement='AssemblyVersion("$1.$(BuildNumber)")'
       Files='GlobalAssemblyInfo.cs'/>
   <Exec Command="attrib -r xunit.installer\App.manifest"/>
 </Target>

هذا البحث AssemblyVersion السمة ، ويستبدل أ.ب.ج.د رقم الإصدار مع.ب.ج.BuildNumber.سوف تترك عادة مصدر دخل الشجرة مع الأجزاء الثلاثة الأولى من البناء رقم ثابت ، والرابع في صفر (f.ه. ، اليوم 1.0.2.0).

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

يمكنك القيام بذلك عن طريق إضافة ما يلي في أي مكان في التعليمات البرمجية الخاصة بك

$Id:$

لذلك على سبيل المثال @جيف هل:

<div id="svnrevision">svn revision: $Id:$</div>

وعندما دققت في الخادم استبدال $Id:$ مع التنقيح الحالي عدد.أنا أيضا وجدت هذا المرجع.

هناك أيضا $تاريخ:$, $القس:$, $مراجعة:$

إذا كنت تستخدم ASP.Net MVC (كما ستاكوفيرفلوو لا) لقد كتب من السهل متابعة 3-خطوة الدليل على كيفية الحصول تلقائيا وعرض أحدث SVN revision.دليل مستوحاة من التفكير في نفسي عن هذا السؤال!:o)

@البالون إذا كنت تستخدم TortoiseSVN ، يمكنك استخدام حزم SubWCRev البرنامج.فإنه يستعلم عمل نسخ و يقول لك فقط أعلى رقم المراجعة.باعتراف الجميع, يبدو أن هذا العميل النهج من جانب الخادم المشكلة ، ولكن منذ انها جميلة سطر الأوامر البرنامج, يجب أن تكون قادرة على التقاط انتاجها لاستخدامها بسهولة إلى حد ما.

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

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

من أجل القيام بذلك, استخدام CI الحل الذي يدعم ذلك ، أو استخدام عملية الإنشاء (MSbuild/نانت) إلى مخزن الإصدار والكتابة إلى الملفات قبل "نشر" عليه.

إضافة إلى @BradWilson الجواب: "هل يمكن أيضا الحصول على مصدر التحكم مزود لتوفير مصدر رقم المراجعة إذا كنت تريد"

للتواصل التخريب و MSBuild:MSBuild المجتمع مهام المشروع

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