Tipps und Tricks

Frage (319) zu VB(8).NET (VS 2005), VB(9).NET (VS 2008), VB(10).NET (VS 2010):
Wie kann man die Version einer Assembly bestimmen?

Antwort:
Wenn man application.Productversion abfragt, dann kommt immer die Version, die in der Asselbyinformation unter Dateiversion angegeben wurde, nicht aber die Version, die als Veröffentlichungsversion automatisch hochgezählt wird.

Application.ProductVersion verwendet nacheinander die folgenden Attribute:
- AssemblyInformationalVersion - nicht im Eigenschaftsdialog einzustellen.
- AssemblyFileVersion (File Version im Eigenschaftsdialog)
- AssemblyVersion

AssemblyInformationVersion kann man in der Assembly.vb eintragen., z. B.:
<Assembly: AssemblyInformationalVersion("1.0.3.0")>

Das automatische Hochzählen funktioniert nur für AssemblyVersion. Wovon abzuraten ist, da es bei DLLs und anderen Abhängigkeiten schnell zum Durcheinander kommt, insbesondere wenn die Assemblies (später) signiert werden oder gar in den GAC installiert werden.

Direkt kann man auf Assembly.Version zugreifen:

[vb]

    Public Shared ReadOnly Property AssemblyVersion() As String 
        Get 
            Dim runAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetEntryAssembly() 
            If (runAssembly IsNot Nothing) Then 
                Dim runAssemblyName As System.Reflection.AssemblyName = runAssembly.GetName(True) 
                If (runAssemblyName IsNot Nothing) Then 
                    Return runAssemblyName.Version.ToString() 
                End If 
            End If 
            Return String.Empty 
        End Get 
    End Property 
[/vb]

Wenn es um die ClickOnce Version geht, die erhält man die Version so:

[vb]
    Public Shared ReadOnly Property ClickOnceVersion() As String 
        Get 
            Try 
                Dim application As System.Deployment.Application.ApplicationDeployment = System.Deployment.Application.ApplicationDeployment.CurrentDeployment 
                If (application IsNot Nothing) Then 
                    Return application.CurrentVersion.ToString() 
                End If 
            Catch ex As System.Deployment.Application.InvalidDeploymentException 
                ' Wenn nicht via ClickOnce Fallback auf die Assembly Version 
                Return AssemblyVersion 
            End Try 
            Return String.Empty 
        End Get 
    End Property 
[/vb]



Stand des Beitrages: 03.06.10 10:16, zuletzt geändert: 01.06.10 21:56



Bitte wählen sie den Themenbereich aus
Bitte geben sie einen Suchbegriff ein

Die hier dargestellten Tipps und Tricks sind das Ergebnis selbst ersteller Lösungsvarianten, die für Projekte und Schulungen erarbeitet wurden.

© http://www.informtools.de (2002-2008)