Einbindung der SVN-Revision in Ihre .NET Assembly-Versionierung
In der Welt der Softwareentwicklung ist die Beibehaltung der Versionskontrolle entscheidend. Für diejenigen, die Subversion (SVN) als ihr Versionskontrollsystem verwenden, kann die Fähigkeit, die Revisionsnummer des SVN-Repositories in die Versionszeichenfolge einer .NET-Assembly einzufügen, die Rückverfolgbarkeit und die Fehlerbehebung erheblich verbessern. Wenn Sie sich gefragt haben, „Gibt es einen Weg, dies ohne Drittanbieter-Tools wie CC.NET zu tun?“, lautet die Antwort ein klares Ja.
Das Problem: Versionierung ohne zusätzliche Werkzeuge
Vielleicht sind Sie auf Situationen gestoßen, in denen Ihre Versionszeichenfolge nicht nur Haupt- und Nebenversionsnummern widerspiegeln, sondern auch die SVN-Revisionsnummer enthalten soll. Ein typisches Zielversionsformat, das Sie in Betracht ziehen könnten, sieht folgendermaßen aus:
Major.Minor.SVNRev
Leider kann es eine Herausforderung sein, eine einfache Methode zur Erreichung dieses Ziels in .NET ohne zusätzliche Software zu finden, insbesondere wenn Sie zuvor etwas Ähnliches in Sprachen wie C oder C++ gemacht haben. In C/C++ könnte dies durch ein Build-Skript erreicht werden, das eine Header-Datei mit der Versionsnummer aktualisiert.
Die Lösung: Verwendung von SubWCRev
Ein effektiver Weg, die SVN-Revisionsnummer in Ihre .NET-Assembly-Versionierung zu integrieren, ist die Verwendung von SubWCRev, einem Dienstprogramm, das mit TortoiseSVN geliefert wird. SubWCRev liest SVN-Schlüsselwörter aus Ihren Dateien und ersetzt diese während des Build-Prozesses durch die entsprechenden Revisionsinformationen.
Schritt-für-Schritt-Anleitung zur Implementierung von SubWCRev
-
Laden Sie TortoiseSVN herunter und konfigurieren Sie es:
- Beginnen Sie damit, TortoiseSVN herunterzuladen, falls Sie dies noch nicht getan haben.
- Installieren Sie es auf Ihrem Computer, um auf das enthaltene SubWCRev-Dienstprogramm zuzugreifen.
-
Einrichten Ihrer AssemblyInfo.cs:
- Öffnen Sie Ihre Datei
AssemblyInfo.cs
; diese Datei enthält normalerweise die Versionsinformationen Ihrer Assembly. - Fügen Sie Platzhalter hinzu, wo die Versionsnummern durch
SubWCRev
ersetzt werden.
Beispiel:
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0.0")]
- Öffnen Sie Ihre Datei
-
Erstellen Sie eine Vorlage:
- Erstellen Sie eine neue Textdatei (z. B.
VersionInfo.txt
) und strukturieren Sie diese so, dass sie definiert, wie die Versionsinformationen ausgefüllt werden sollen. - Verwenden Sie Platzhalter für die Revisionsnummer.
Beispiel für
VersionInfo.txt
:[assembly: AssemblyVersion("${VersionNumber}.0")] [assembly: AssemblyFileVersion("${VersionNumber}.0")] [assembly: AssemblyInformationalVersion("${VersionNumber}.${Revision}")]
- Erstellen Sie eine neue Textdatei (z. B.
-
Führen Sie SubWCRev aus:
- Verwenden Sie den SubWCRev-Befehl, um die Platzhalter in Ihrer Datei
VersionInfo.txt
durch tatsächliche Versionsnummern aus Ihrem SVN-Repository zu ersetzen. - Dies kann typischerweise über die Befehlszeile oder in Ihre Build-Skripte integriert werden.
- Verwenden Sie den SubWCRev-Befehl, um die Platzhalter in Ihrer Datei
-
Bauen Sie Ihr Projekt:
- Beim Erstellen Ihres Projekts generiert SubWCRev eine neue
AssemblyInfo.cs
-Datei mit der Versionsnummer, die mit Ihrer SVN-Revision gefüllt ist.
- Beim Erstellen Ihres Projekts generiert SubWCRev eine neue
Fazit
Durch die Integration von SubWCRev in Ihren .NET-Projektworkflow können Sie sicherstellen, dass die Versionszeichenfolge Ihrer Assembly die SVN-Revisionsnummer enthält, ohne auf externe Software wie CC.NET angewiesen zu sein. Dieser Ansatz macht Ihre Versionierung nicht nur informativer, sondern hält sie auch einfach und überschaubar.
Jetzt, da Sie wissen, wie Sie die SVN-Revisionsnummer
in Ihre .NET Assembly-Versionierung einfügen können, probieren Sie es in Ihrem nächsten Projekt aus, und Sie werden die Klarheit, die es bringt, zu schätzen wissen.