Was bedeutet Dateiversion / Assemblyversion und wie lasse ich die automatisch hochzählen.

11/02/2008 - 13:18 von Dirk Wölfel | Report spam
Hallo zusammen,

ich wollte mein Projekt so gestallten, dass bei jedem neuen Erstellen
(Build) die Buildnummer erhöht wird. Dabei bin ich darüber gestolpert,
dass es zwei verschiedene Versionsnummern gibt: die Fileversion und
die Assemblyversion. Worin liegt der Unterschied und welches ist die
"maßgebende" Nummer (was wird also üblicherweise beim Build
hochgezàhlt)?

Das Fenster Assemblyinformationen stellt meines Erachtens nur eine
Oberflàche für die Daten in "AssemblyInfo.vb" dar. Ist das richtig?

Ein * an der Stelle Buildnummer erhöht diese dann automatisch bei
jedem Erstellen. Richtig?

Bei Dateiverson funktioniert dies aber nicht. Ist es rgendwie anders
möglich? Kann man Dateiversion und Assemblyversion irgendwie
synchronisieren?

Vielen Dank für Eure Hilfe,

Dirk
 

Lesen sie die antworten

#1 Gerald Mahlmeister
12/02/2008 - 13:22 | Warnen spam
Hallo zusammen,



Re!

ich wollte mein Projekt so gestallten, dass bei jedem neuen Erstellen
(Build) die Buildnummer erhöht wird. Dabei bin ich darüber gestolpert,
dass es zwei verschiedene Versionsnummern gibt: die Fileversion und
die Assemblyversion. Worin liegt der Unterschied und welches ist die
"maßgebende" Nummer (was wird also üblicherweise beim Build
hochgezàhlt)?


Grob kann man sagen. AssemblyVersion ist die Version des Assemblies, also
eine .NET eigene Metainformation in der Datei. Fileversion ist die Nummer
der Datei für das Betriebssystem. Beides kann man in .NET über Assemblyweite
Attribute definieren und der Compiler legt das in der Zieldatei korrekt ab.

Maßgebend ist dabei keine von beiden. Es ist jedoch in der Regel üblich
beide Nummern gleich zu halten.

Das Fenster Assemblyinformationen stellt meines Erachtens nur eine
Oberflàche für die Daten in "AssemblyInfo.vb" dar. Ist das richtig?


Jepp. Das Fenster ist eine GUI für diese Attribute. Diese können theoretisch
in jeder beliebigen Codedatei definiert werden, VS legt sie halt in
AssemblyInfo.vb ab.

Ein * an der Stelle Buildnummer erhöht diese dann automatisch bei
jedem Erstellen. Richtig?


Eine Nummer besteht aus Major, Minor, Build und Revision. Ein * am Ende làßt
den Compiler automatisch Build und Revision festlegen. Build legt dann den
Tag und Build die Zeit des Buildes fest.

Bei Dateiverson funktioniert dies aber nicht. Ist es rgendwie anders
möglich? Kann man Dateiversion und Assemblyversion irgendwie
synchronisieren?



Korrekt das funktioniert nicht mit FileVersion, sondern nur mit
AssemblyVersion.
VS Builds laufen per MSBuild. Damit kann man den kompletten Buildprozess
abbilden. Der gàngige Trick besteht darin vor dem eigentlichen Buildprozess
einen Task laufen zu lassen, der per Suchen und Ersetzen in der
AssemblyInfo.vb die korrekten Werte eintràgt. Suche mal im Netz nach
AssemblyInfoTask.

Gruß
Gerald

Ähnliche fragen