2017-12-28 54 views
0

Seit Jahren habe ich Subversion verwendet. Meine freigegebenen Software-Versionsnummern sind im Format XXX {SVN REV} und verwende ich ein Pre-Build-Ereignis in Visual Studio C# Revisionsdatei zu füllen:Get Visual Studio Changeset als Teil der Revision

namespace Revision 
{ 
    internal static class Svnstrings 
    { 
     static public int WCREV = 1959; 
     static public string WCDATE = "2017/12/08 21:48:52"; 
     static public string WCNOW = "2017/12/28 14:01:35"; 
     static public string WCRANGE = "1949:1959"; 
     static public string WCMIXED = "Mixed update revision"; 
     static public string WCMODS = "Modified"; 
     static public string WCURL = "https://app.deveo.com/SrcCtrl/projects/myProject/repositories/subversion/myProject/trunk/mySource/myProject/Revision"; 
     static public string WCINSVN = "Versioned"; 
     static public string WCNEEDSLOCK = "Lock not required"; 
     static public string WCISLOCKED = "Not Locked"; 
     static public string WCLOCKDATE = "1970/01/01 00:00:00"; 
     static public string WCLOCKOWNER = ""; 
     static public string WCLOCKCOMMENT = ""; 
    } 
} 

Ich wechselte vor kurzem zu Visual Studio TFS für meine Quellcodeverwaltung und ich möchte etwas ähnliches tun, greifen Sie den Änderungswert in WCREV.

Vielleicht über mehr als kompliziert, aber immer noch die neue Quelle Lernsteuerung nach 10+ Jahre für Subversion mit und nach wie vor den Grundlagen zu lernen und vielleicht hat jemand eine bessere Idee.

+1

Wir verwenden eine TFS-Erweiterung namens "Assembly-Info", um die Änderungssatznummer in der Assembly in der TFS-Builddefinition festzulegen. Wir stellen es nicht irgendwo im Code ein, aber wir verweisen auf die aktuelle Assembly-Version im Code. – KSib

Antwort

1

Im Gegensatz zu SVN, wir haben nicht WCREV.exe mit TFS installiert entlang.

In TFS ist der einfachste Weg, die Build-Nummer als Ihre Versionsnummer zu verwenden. Es gibt eine globale .NET-Versionsstrategie: AssemblyInformationalVersion. Sie können diese Strategie verwenden, um Ihrer Software Versionierung hinzuzufügen. Sie könnten eine powershell script Version für Ihre Assemblies verwenden.

Der Powershell-Skript wird die Magie im Hintergrund tun alle Versionswerte für Assembly, Assembly und AssemblyInformationalVersion in der Versammlung Info-Dateien zu ersetzen, basierend auf dieser Produktversion. Die Produktversion wird als Ganzes an die Attribute AssemblyVersion und AssemblyInformationalVersion übergeben. Die AssemblyFileVersion wird durch eine vollständige Versionsnummer ersetzt, die aus der Haupt- und Nebenversionsnummer der Produktversion, einem Julianischen Datum und einer inkrementellen Buildnummer besteht.

enter image description here

Für die Bedeutung der Versammlung Dateiversion = 2.7.15169.03

  • 2 => von „Major“ Produktversion genommen
  • 7 => entnommen aus "Minor" Produktversion
  • 15169 => vom Buildprozess generiert: "15" = Jahr 2 015, „169“ = Tag des Jahres 2015
  • 3 => dritter zu bauen, am Tag 169 im Jahr lief 2015

mehr Details für Sie einen Blick auf diesem großen Beitrag nehmen könnten: TFS Build 2015 … and versioning! und diese ähnliches Thema


Was Sie in Ihrer Versammlung Informationen erhalten/set changeset Nummer.

Sie $(Build.SourceVersion) in Ihrem Build-Nummer Format dies zu erreichen, verwenden könnte, wie

$(BuildDefinitionName)_$(date:yyyyMMdd)_$(Build.BuildId).$(Build.SourceVersion)$(rev:.r)

Doch diese $ (Build.SourceVersion) funktioniert nur, wenn Commit ausgelöst wurden Builds automatisch auf (auf Continuous Integration) Wenn Sie einen manuellen Build ausführen, müssen Sie das Feld Quellversion eingeben, damit es gefüllt wird. Weitere Informationen finden Sie unter: Build.SourceVersion is blank in VSO vNext Build

Sie können auch PowerShell-Skript verwenden, um die Versionsnummer der Versionsnummer zu erhalten und sie in Ihrer Build-Nummer oder AssemblyInfo anzuwenden.

+0

TFS verwendet '$ (Rev: .rr)' um sicherzustellen, dass jedes fertiggestellte Build einen eindeutigen Namen hat. Wenn ein Build abgeschlossen ist und sich nichts anderes in der Build-Nummer geändert hat, wird der Rev-Integer-Wert automatisch um eins erhöht. Quelllink: https://docs.microsoft.com/en-us/vsts/build-release/concepts/definitions/build/options#build-number-format –

Verwandte Themen