Feste Assembly-Version mit automatisch inkrementierter Dateiversion?

8

Ich versuche, eine sinnvollere Methode für die Versionsverwaltung für meine App zu finden, und ich habe diesen KB-Artikel

kritisiert

Ссылка

Grundsätzlich empfiehlt es sich, die Assembly-Version zu reparieren, und die Dateiversion sollte für jeden Build erhöht werden. Nun, das macht für mich vollkommen Sinn, aber für das Leben von mir kann ich es nicht umsetzen.

Das folgende Snippet erhöht automatisch die Assembly-Version und FileVersion.

%Vor%

Während der nächste scheint eine feste Assemblyversion von 1.0.0.0 und eine feste Dateiversion von 1.0.* zu setzen.

%Vor%

Übrigens, die Produktversion in der Registerkarte Details der Dateieigenschaften liest jetzt auch 1.0.* . Jetzt kann ich die Produktversion in den Dateieigenschaften mit diesem beheben ...

%Vor%

Aber das hilft nicht bei meiner ursprünglichen Aufgabe. Aus Neugierde habe ich versucht, das unten und die Dateiversion in 2.0.* geändert, so dass es zumindest verwendet wird. Es wird nicht automatisch inkrementiert.

%Vor%

Von dem, was ich die einzige Versionsnummer sammeln kann, ist die Assembly-Version in Auto-Schritten, aber wenn Sie keine Datei-Version angegeben haben, wird sie auf die gleiche Weise wie die Assembly-Version festgelegt.

Kennt jemand eine Möglichkeit, die Dateiversion automatisch zu erhöhen, während die Assembly-Version beibehalten wird?

    
Nick Albrecht 06.09.2012, 19:55
quelle

1 Antwort

11

Ja, es ist ein bisschen albern, Microsoft scheint es falsch verstanden zu haben. AssemblyVersion wird im Versionsverwaltungssystem von .NET Assembly verwendet. Sie sollten es daher niemals automatisch inkrementieren, aber AssemblyFileVersion wird in den Dateiversionseintrag in der Versionsressource der Datei geschrieben, sodass Sie erwarten können, dass es immer automatisch erhöht wird Standardmäßig.

Ich bin mir sicher, dass es einige Build-Systeme von Drittanbietern gibt, die das für Sie tun können, aber ich habe nur eine kleine C # App für die Befehlszeile geschrieben und sie wird bei jedem Projekt als Teil unseres Builds ausgeführt verarbeiten. Es ist sehr einfach:

  1. Lesen Sie die AssemblyInfo.cs -Datei Zeile für Zeile.
  2. Suchen Sie in RegEx nach der Zeile AssemblyFileVersion , und erfassen Sie alle vier Versionsteile in separaten Erfassungsgruppen. Man könnte es selbst analysieren, aber ein Regex wird alles auf einmal aufspüren und parsen, so dass es albern erscheint, keinen Vorteil daraus zu ziehen.
  3. Sobald Sie die vier ganzen Zahlen haben, implementieren Sie Ihre eigene inkrementierende Logik, wie Sie es für richtig halten.
Christian Hayter 06.09.2012, 20:10
quelle

Tags und Links