Assembly.Version.Revision? Wie wird die errechnet??

16/01/2009 - 14:43 von Johannes Busch | Report spam
Hallo zusammen,

entweder ich stehe auf dem Freitagnachmittagschlauch oder es gibt da
wirklich ein Problem.

Ich möchte die BuildNumber der Assembly der eigenen Anwendung ermitteln.
Das ist auch nicht allzu schwer:

DIM oAssembly As System.Reflection.AssemblyName =
System.Reflection.Assembly.GetExecutingAssembly().GetName

DIM lAssemblyVersion as long= oAssembly.Version.Revision

Soweit, so gut.
Dienen soll das Ganze aber dazu, um feststellen (per DB-Abgleich), ob
eine gestartete Instanz der Anwendung dem aktuellen Stand entspricht.
Und zu meinem völligen Erstaunen mußte ich festeleln, daß die Revision
keineswegs immer weiter hochgezàhlt wird, sondern eher einen beliebigen
(wenn wohl auch eindeutigen) Wert erhàlt. Aber warum ist das so? Ich
kann in der OH dazu wenig Weiterführendes finden (mag auch an meiner
eigenen Hektik heute liegen).

Mag mir da jemand auf die Sprünge helfen?

Johannes Busch
 

Lesen sie die antworten

#1 Elmar Boye
16/01/2009 - 16:18 | Warnen spam
Hallo Johannes,

Johannes Busch schrieb:
Ich möchte die BuildNumber der Assembly der eigenen Anwendung ermitteln.
Soweit, so gut.
Dienen soll das Ganze aber dazu, um feststellen (per DB-Abgleich), ob
eine gestartete Instanz der Anwendung dem aktuellen Stand entspricht.
Und zu meinem völligen Erstaunen mußte ich festeleln, daß die Revision
keineswegs immer weiter hochgezàhlt wird, sondern eher einen beliebigen
(wenn wohl auch eindeutigen) Wert erhàlt.



Das passiert nur wenn man für Build und/oder Revision "*" angibt.
Dann wird prinzipiell das Verfahren verwendet das bereits in
<URL:http://msdn.microsoft.com/en-us/lib...3.aspx>
beschrieben wird.
Wobei VS 2005 und spàter ein geàndertes Verfahren verwenden,
bei dem die Build-Nummer tàglich und die Revision zufàllig
veràndert wird, siehe:
<URL:http://msdn.microsoft.com/de-de/lib...e.aspx>

Im allgemeinen hat die Automatik mehr Nachteile - spàtestens
wenn die Assemblies signiert werden sollen.

Eine Alternative ist die Versionsnummer selbst hochzuzàhlen,
einige (àltere, weil dort VS2003 gefordert) hatte ich genannt in:
<URL:http://groups.google.de/group/micro...d78b6e>

Eine MSBuild-Task dazu wàre:
<URL:http://blogs.msdn.com/msbuild/archi...d.aspx>

Das Projekt befindet sich mittlerweile hier:
<URL:http://code.msdn.microsoft.com/Asse...seId#2>

Gruß Elmar

Ähnliche fragen