Πώς μπορώ να συγχρονίσετε τον αριθμό αναθεώρησης SVN με ASP.NET ιστοσελίδα μου;

ψήφοι
84

Υπερχείλιση στοίβας έχει αριθμό έκδοσης ανατροπή στο κάτω μέρος:

svn αναθεώρηση: 679

Θέλω να χρησιμοποιήσω τέτοια αυτόματη εκδόσεων με μου .NET Web Site/Application, τα Windows Forms, έργα WPD / λύσεις.

Πώς μπορώ να εφαρμόσουν αυτό;

Δημοσιεύθηκε 01/08/2008 στις 19:00
πηγή χρήστη
Σε άλλες γλώσσες...                            


7 απαντήσεις

ψήφοι
29

Μοιάζει Jeff χρησιμοποιεί CruiseControl.NET βασίζεται σε κάποια ξεφυλλίζει τις μεταγραφές podcast. Αυτό φαίνεται να είναι αυτοματοποιημένη ανάπτυξη ικανοτήτων από τον έλεγχο πηγή για την παραγωγή. Μήπως αυτό είναι όπου η εισαγωγή συμβαίνει;

Απαντήθηκε 01/08/2008 στις 19:24
πηγή χρήστη

ψήφοι
26

Το κάνουμε αυτό με xUnit.net για την αυτοματοποιημένη μας χτίζει. Χρησιμοποιούμε CruiseControl.net(και δοκιμάζοντας TeamCity). Το έργο MSBuild που τρέχουν για συνεχή ενσωμάτωση αλλάζει αυτόματα τον αριθμό build για εμάς, έτσι ώστε η προκύπτουσα συγκέντρωση αρχείο ZIP περιέχει ένα σωστά εκδόσεων σύνολο των DLLs και EXEs.

Μας αρχείο MSBuild περιέχει μια αναφορά UsingTask για ένα αρχείο DLL που κάνει τακτικές αντικαταστάσεις έκφραση: (είστε ευπρόσδεκτοι να χρησιμοποιήσετε αυτό το DLL, όπως καλύπτεται από την άδεια MS-PL επίσης)

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

Στη συνέχεια, εξαγάγετε τον αριθμό κατασκευής, το οποίο παρέχεται αυτόματα από το σύστημα CI. Θα μπορούσατε επίσης να πάρετε τον παροχέα έλεγχο η πηγή σας για να σας δώσει τον αριθμό αναθεώρησης πηγή, αν θέλετε, αλλά βρήκαμε την κατασκευή # στο σύστημα CI ήταν πιο χρήσιμο, διότι όχι μόνο μπορεί να δει τα αποτελέσματα ενσωμάτωση με τον αριθμό CI κατασκευή, η οποία παρέχει επίσης ένα σύνδεση πίσω στο changeset (ες) που συμπεριλήφθηκαν στην κατασκευή.

 <! - Cascading προσπαθεί να βρει έναν αριθμό build ->

 <PropertyGroup Κατάσταση = " '$ (BuildNumber)' == ''">
   <BuildNumber> $ (BUILD_NUMBER) </ BuildNumber>
 </ PropertyGroup>
 <PropertyGroup Κατάσταση = " '$ (BuildNumber)' == ''">
   <BuildNumber> $ (ccnetlabel) </ BuildNumber>
 </ PropertyGroup>
 <PropertyGroup Κατάσταση = " '$ (BuildNumber)' == ''">
   <BuildNumber> 0 </ BuildNumber>
 </ PropertyGroup>

(Προσπαθούμε BUILD_NUMBER, η οποία είναι από TeamCity, τότε ccnetlabel, η οποία είναι από CC.net, και αν δεν είναι παρών, εμείς προεπιλογή 0, έτσι ώστε να μπορούμε να ελέγξουμε το αυτοματοποιημένο πρόγραμμα κατασκευής με το χέρι.)

Στη συνέχεια, έχουμε ένα καθήκον που ορίζει τον αριθμό build σε ένα αρχείο GlobalAssemblyInfo.cs που συνδέουν σε όλα τα έργα μας:

 <Στόχος Όνομα = "SetVersionNumber">
   <REGEXREPLACE
       Pattern = 'AssemblyVersion \ ( "(\ d + \. \ D + \. \ D +) \. \ D +" \)'
       Αντικατάσταση = 'AssemblyVersion ( "$ 1. $ (BuildNumber)")'
       Αρχεία = 'GlobalAssemblyInfo.cs' />
   <Exec Command = "attrib -r xunit.installer \ App.manifest" />
 </ Target>

Αυτό βρείτε το χαρακτηριστικό AssemblyVersion, και αντικαθιστά το ABCD αριθμό έκδοσης με abcBuildNumber. Εμείς θα αφήσει συνήθως την πηγή που ελέγχθηκαν στο δέντρο με τα πρώτα τρία μέρη του αριθμού οικοδόμος σταθερό, και το τέταρτο στο μηδέν (fe, σήμερα είναι 1.0.2.0).

Κατά τη διαδικασία κατασκευής σας, βεβαιωθείτε ότι το έργο SetVersionNumber προηγείται έργο κατασκευής σας. Στο τέλος, χρησιμοποιούμε το έργο Zip μας για να συμπιέσετε τα αποτελέσματα κατασκευής έτσι ώστε να έχουμε μια ιστορία από τα εκτελέσιμα για κάθε αυτοματοποιημένη κατασκευή.

Απαντήθηκε 16/08/2008 στις 19:00
πηγή χρήστη

ψήφοι
24

Μπορείτε να το κάνετε προσθέτοντας τον κωδικό σας τα ακόλουθα οπουδήποτε

$Id:$

Έτσι, για παράδειγμα @Jeff έκανε:

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

και όταν ελέγχεται το διακομιστή αντικατασταθεί $ Id: $ με τον τρέχοντα αριθμό αναθεώρησης. Επίσης, βρέθηκε αυτή την αναφορά .

Υπάρχει επίσης $ Ημερομηνία: $ , $ Rev: $ , $ Αναθεώρηση: $

Απαντήθηκε 01/08/2008 στις 19:08
πηγή χρήστη

ψήφοι
17

Αν χρησιμοποιείτε ASP.Net MVC(όπως κάνει StackOverflow), έχω γράψει ένα εύκολο να ακολουθήσει τον οδηγό 3-βήμα για το πώς να πάρει και να εμφανίσει την τελευταία αναθεώρηση SVN αυτόματα . Ο οδηγός είναι εμπνευσμένο από τη σκέψη για τον εαυτό μου σχετικά με αυτό ακριβώς το ζήτημα! : o)

Απαντήθηκε 17/12/2008 στις 11:17
πηγή χρήστη

ψήφοι
10

@Balloon Εάν χρησιμοποιείτε TortoiseSVN, μπορείτε να χρησιμοποιήσετε το συσκευασμένο SubWCRev πρόγραμμα. Είναι ερωτήματα αντίγραφο εργασίας και σας λέει ακριβώς το μεγαλύτερο αριθμό αναθεώρησης. Βεβαίως, αυτό φαίνεται να είναι ένα client-side προσέγγιση σε ένα server-side πρόβλημα, αλλά δεδομένου ότι είναι ένα ωραίο πρόγραμμα γραμμής εντολών, θα πρέπει να είναι σε θέση να συλλάβει την παραγωγή της για τη χρήση αρκετά εύκολα.

Απαντήθηκε 15/09/2008 στις 20:04
πηγή χρήστη

ψήφοι
9

$revκαι άλλες παρόμοιες είναι αναθεωρήσεις για τα μεμονωμένα αρχεία, έτσι δεν θα αλλάξει εκτός αν οι αλλαγές στο αρχείο. Ο αριθμός στην ιστοσελίδα είναι (κατά πάσα πιθανότητα, υποθέτω εδώ) τον αριθμό αναθεώρησης svn για το σύνολο του έργου. Αυτό είναι διαφορετικό από τις αναθεωρήσεις του αρχείου, που άλλοι έχουν δείχνοντας.

Σε αυτή την περίπτωση υποθέτω ότι CCNET τραβά τον αριθμό αναθεώρησης του έργου και ξαναγράφοντας μέρος της ιστοσελίδας με αυτόν τον αριθμό. Οποιαδήποτε λύση CI θα πρέπει να είναι σε θέση να το κάνετε αυτό, που αυτή τη ίδιος με CCNET και Teamcity (αν και όχι ιστοσελίδες, αλλά αυτόματη εκδόσεων των εκδόσεων εγκατάστασης / συναρμολόγησης).

Για να το κάνετε αυτό, χρησιμοποιήστε μια λύση CI που υποστηρίζει, ή να χρησιμοποιήσετε τη διαδικασία κατασκευής σας (MSBuild / Nant) να αποθηκεύσετε τη συγκεκριμένη έκδοση και να το γράψετε στα αρχεία πριν από την «ανάπτυξη» του.

Απαντήθηκε 13/08/2008 στις 02:28
πηγή χρήστη

ψήφοι
5

Για να προσθέσετε @ απάντηση BradWilson του: «Θα μπορούσατε επίσης να πάρετε τον παροχέα έλεγχο η πηγή σας για να σας δώσει τον αριθμό αναθεώρησης πηγή, αν θέλετε»

Για να συνδεθείτε Subversion και MSBuild: MSBuild Κοινότητας Εργασίες έργου

Απαντήθηκε 01/10/2008 στις 12:51
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more