سؤال

هل هناك أي طريقة أن تشمل إس مستودع رقم المراجعة في إصدار سلسلة من .صافي الجمعية ؟ شيء مثل الرئيسية.طفيفة.SVNRev

رأيت ذكر تفعل هذا مع شيء من هذا القبيل CC.NET (على الرغم من أن في ASP.NET في الواقع) ، ولكن هل هناك أي طريقة للقيام بذلك دون أي برامج إضافية?لقد فعلت أشياء مماثلة في C/C++ قبل استخدام بناء البرامج النصية الدفعية ، ولكن تم انجازه من خلال قراءة رقم الإصدار ، ثم بعد السيناريو كتابة ملف يسمى "ver.ح" في كل مرة مع ما تأثير:

#define MAJORVER 4
#define MINORVER 23
#define SOURCEVER 965

كنا ثم استخدام هذه تحدد لتوليد إصدار السلسلة.

هو شيء من هذا القبيل ممكن .الشبكة ؟

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

المحلول

إلقاء نظرة على SubWCRev - http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html

الجمعية أرقام إصدار عادة في assemblyinfo.cs

نصائح أخرى

هنا و C# مثلا تحديث وتنقيح المعلومات في الجمعية تلقائيا.لأنه يقوم على الجواب من سوف دين وهي ليست متقنة جدا.

على سبيل المثال :

  1. نسخ AssemblyInfo.cs AssemblyInfoTemplate.cs في المشروع المجلد خصائص.
  2. تغيير بناء العمل إلى لا شيء بالنسبة AssemblyInfoTemplate.cs.
  3. تعديل الخط مع AssemblyFileVersion إلى:

    [assembly: AssemblyFileVersion("1.0.0.$WCREV$")]

  4. النظر في إضافة:

    [assembly: AssemblyInformationalVersion("Build date: $WCNOW=%Y-%m-%d %H:%M:%S$; Revision date: $WCDATE=%Y-%m-%d %H:%M:%S$; Revision(s) in working copy: $WCRANGE$$WCMODS?; WARNING working copy had uncommitted modifications:$.")],

    والتي سوف تعطي تفاصيل حول مراجعة وضع المصدر الجمعية بناء.

  5. إضافة التالية Pre-build للمشروع خصائص الملف:

    subwcrev "$(SolutionDir)." "$(ProjectDir)Properties\AssemblyInfoTemplate.cs" "$(ProjectDir)Properties\AssemblyInfo.cs" -f

  6. النظر في إضافة AssemblyInfo.cs إس في قائمة التجاهل.محل مراجعة الأرقام والتواريخ تعديل الملف الذي ينتج تافهة التغييرات والتنقيحات $WCMODS$ سيتم تقييمها إلى true.AssemblyInfo.cs يجب بالطبع المدرجة في المشروع.

ردا على اعتراضات Wim كوينين, لقد لاحظت في المقابل أن ما اقترحته داريل ، AssemblyFileVersion أيضا لا لا أرقام الدعم أعلاه 2^16.إن بناء كاملة ، ولكن الخاصية إصدار الملف في الجمعية الفعلية سوف تكون AssemblyFileVersion مودولو 65536.وهكذا ، 1.0.0.65536 وكذلك 1.0.0.131072 سوف تسفر 1.0.0.0, الخ.في هذا المثال, هناك دائما صحيح تنقيح الرقم في AssemblyInformationalVersion الملكية.هل يمكن أن تترك الخطوة 3 إذا كنت تنظر في هذه المسألة الهامة.

تحرير:بعض المعلومات الإضافية بعد استخدام هذا الحل لفترة من الوقت.

  1. الآن استخدام AssemblyInfo.العلم والتكنولوجيا بدلا من AssemblyInfoTemplate.cs, لأنه سيكون تلقائيا بناء العمل الخيار لا شيء, ولن فوضى الخطأ لك قائمة ، ولكن سوف تفقد تسليط الضوء على بناء الجملة.
  2. لقد تم إضافة اثنين من الاختبارات إلى AssemblyInfo.العلم والتكنولوجيا الملفات:

    #if(!DEBUG)    
        $WCMODS?#error Working copy has uncommitted modifications, please commit all modifications before creating a release build.:$ 
    #endif 
    #if(!DEBUG)       
        $WCMIXED?#error Working copy has multiple revisions, please update to the latest revision before creating a release build.:$ 
    #endif
    

    باستخدام هذا سوف عادة إلى إجراء كاملة إس في تحديث بعد ارتكاب قبل أن يمكنك أن تفعل ناجحة بناء الإصدار.وإلا $WCMIXED سوف يكون صحيحا.يبدو أن هذا هو بسبب حقيقة أن ترتكب ملفات إعادة في الرأس المراجعة بعد ارتكاب لكن ملفات أخرى لا.

  3. لدي بعض الشكوك حول ما إذا كانت المعلمة الأولى إلى subwcrev, "$(SolutionDir)" ، الذي يحدد نطاق التدقيق إس معلومات النسخة لا تعمل دائما كما تريد.ربما ينبغي أن يكون $(ProjectDir), إذا كنت المحتوى إذا كان كل فرد الجمعية بطريقة متسقة المراجعة.

إضافة للرد على تعليق @tommylux.

SubWcRev يمكن أن تستخدم في أي ملف في المشروع.إذا كنت ترغب في عرض مراجعة المعلومات في صفحة ويب ، يمكنك استخدام هذا VersionInfo القالب:

public class VersionInfo
{       
    public const int RevisionNumber = $WCREV$;
    public const string BuildDate = "$WCNOW=%Y-%m-%d %H:%M:%S$";
    public const string RevisionDate = "$WCDATE=%Y-%m-%d %H:%M:%S$";
    public const string RevisionsInWorkingCopy = "$WCRANGE$";
    public const bool UncommitedModification = $WCMODS?true:false$;
}

إضافة إلى ما قبل بناء الحدث تماما مثل واحد على AssemblyInfo.العلم والتكنولوجيا و سوف يكون من السهل الوصول إلى كافة ذات الصلة التخريب معلومات عن الفندق.

من الممكن لكن لا يجب أن:مكونات الجمعية إصدار سلسلة محدودة إلى 16 بت أرقام (ماكس 65535).التخريب مراجعة الأرقام يمكن أن تصبح بسهولة أكبر من ذلك في بعض نقطة مترجم فجأة الذهاب للشكوى.

قراءة/الخالي من هذه المستندات:

الوصول إلى التخريب من مستودع .صافي باستخدام DotSVN

كيفية:الكتابة مهمة

إدراج إس النسخة وبناء عدد في C# الملف AssemblyInfo

تجميع التطبيقات مع المهام المخصصة Microsoft بناء المحرك

على MSBuildCommunityTasks svnversion المذكورة في الثالث المرجعية لن تؤدي مع svn على ماك 10.5.6 و VS2008 C# مشروع بناء داخل يوازي استضافة ويندوز فيستا (أي. ، عبر نظام التشغيل).

الكتابة الخاصة بك مهمة لاسترداد مراجعة من المستودع باستخدام DotSVN:

using System;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using DotSVN.Common;
using DotSVN.Common.Entities;
using DotSVN.Common.Util;
using DotSVN.Server.RepositoryAccess;

namespace GetSVNVersion
{
    public class GetRevision : Task
    {
        [Required]
        public string Repository { get; set; }
        [Output]
        public string Revision { get; set; }

        public override bool Execute()
        {
            ISVNRepository repo;
            bool connected = true;
            try
            {
                repo = SVNRepositoryFactory.Create(new SVNURL(Repository));
                repo.OpenRepository();
                Revision = repo.GetLatestRevision().ToString();
                Log.LogCommandLine(Repository + " is revision " + Revision);
                repo.CloseRepository();
            }
            catch(Exception e)
            {
                Log.LogError("Error retrieving revision number for " + Repository + ": " + e.Message);
                connected = false;
            }
            return connected;
        }
    }
}

هذه الطريقة تسمح مستودع الطريق إلى أن "file:///Y:/الريبو" حيث Y:هو ماك دليل تعيينها في ويندوز فيستا.

جواب آخر ذكر أن SVN revision العدد قد لا يكون فكرة جيدة بسبب الحد على حجم عدد.

الرابط التالي يوفر ليس فقط SNV رقم المراجعة ، ولكن أيضا تاريخ الإصدار معلومات القالب.

هذا إضافة إلى مجموعة .صافي المشروع هو بسيط - القليل جدا من العمل الذي يتعين القيام به.

هنا هو مشروع جيثب يعالج هذا https://github.com/AndrewFreemantle/When-The-Version/downloads

الرابط التالي يمكن تحميل ببطء ولكن خطوة بخطوة شرح كيفية جعل هذا العمل (سهلة وقصيرة 3 أو 4 خطوات)

http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/

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

لقد فعلت هذا من قبل, ولكن سرعان ما تحولت إلى مجرد وجود ccnet تمر كمتغير الى نانت.

إذا كنت ترغب في تحديث رقم الإصدار في مشاريع AssemblyInfo.cs كنت قد تكون مهتمة في هذه المقالة:

CodeProject:استخدام التخريب مراجعة الأرقام في Visual Studio المشاريع

إذا تم تمكين إس الكلمات الرئيسية ثم في كل مرة كنت تحقق في المشروع التخريب بفحص ملفات معينة "كلمات" و يستبدل الكلمات مع بعض المعلومات.

على سبيل المثال, في الجزء العلوي من بلدي الملفات المصدر وأود أن إنشاء رأس تحتوي على الكلمات الأساسية التالية:

'$المؤلف:$
'$Id:$
'$القس:$

عندما تحقق هذا الملف إلى التخريب هذه الكلمات يتم استبدال التالية:

'$المؤلف:paulbetteridge $
'$Id:myfile.vb 145 2008-07-16 15:24:29Z paulbetteridge $
'$القس:145 $

يمكنك استخدام مشترك الجمعية نسخة الملف التي يمكنك الرجوع في جميع المشاريع الخاصة بك.

كمة هل هذا - http://ferventcoder.com/archive/2009/05/21/uppercut---automated-builds---versionbuilder.aspx

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

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