Dynamische Versionierung

8

Ich habe eine Situation, in der ich möchte, dass die Versionierung zur Build-Zeit dynamisch ist.

Versionsmuster: <year>.<month>.<day>.<hhmm>

Aber ich habe gelesen, wo der String-Wert, der im Attribut verwendet wird, zur Kompilierzeit repariert wird.

Gibt es Hinweise, wie Sie diese dynamische Versionierung erhalten?

Ideale Situation:

%Vor%

Ich weiß, dass es nicht funktioniert, aber sollte den Punkt akrostichiert bekommen.

    
GoldBishop 07.01.2013, 20:24
quelle

1 Antwort

3

Sie können die MsbuildCommunityTasks verwenden, um die Build-Nummer zu generieren und die Version der Assembly-Datei während der Vorbereitungszeit anzupassen.

  • Laden Sie die Zip-Datei herunter MsbuildCommunityTasks

  • Entpacken Sie in den Ordner [SolutionFolder] \ MsBuildExtensions \ MSBuildCommunityTasks

  • Fügen Sie das folgende Beispiel für Ihr Projekt (csproj) direkt nach dem Import von Microsoft.CSharp.Targets hinzu.

  

%Vor%

  • Löschen Sie das AssemblyFileVersion-Attribut aus Ihrer AssemblyInfo.cs. Es wird zur Erstellungszeit generiert.

  • Sie sehen die Versionsnummer, die beim Erstellen auf der Konsole ausgegeben wird. Die generierte Datei wird auf dem AfterBuild-Ziel gelöscht, um die Quellcodeverwaltung sauber zu halten.

    VorBuild:

    Gebäude 2013.01.14.1016 ...  Die AssemblyInfo-Datei "Properties \ AssemblyVersionInfo.cs" wurde erstellt.

    (...)

    AfterBuild:

    Löschen der Datei "Properties \ AssemblyVersionInfo.cs".

  • Wenn Sie dies für viele Projekte mit weniger Msbuild-Code tun möchten, müssen Sie ein benutzerdefiniertes Build-Skript erstellen, um Ihre Lösung zu vervollständigen.

Marcos Brigante 14.01.2013 13:03
quelle

Tags und Links