none
Versionsnummer abfragen RRS feed

  • Frage

  • Hallo zusammen!

    Ich habe die ganze Hompage durchsucht, aber bin bis jetzt noch immer nicht fündig geworden.

    Bei meinem Programm habe ich bei den Projekteigenschaften unter Veröffentlichen die Versionsnummer geändert. Dann habe ich eine Windows-Form namens "info" erstellt und nun will ich in diesem "Info" Fenster die aktuelle Versionsnummer anzeigen.

    Mittlerweile habe ich folgendes:

     TextBox1.Text = Application.ProductVersion

    Aber dann bin ich draufgekommen, dass das die Assembly-Version abruft.

    Weiß jemand wie ich die eingestellte Version abrufen kann?

     

    Sonntag, 22. Januar 2012 09:32

Antworten

  • Hallo,

    Die Versionsnummer bei Veröffentlichen bezieht sich auf ClickOnce und hat mit den Assembly Versionsnummern nichts zu tun.
    Auch wenn es durchaus sinnvoll sein kann, die Assembly Version anzupassen, wenn Du eine neue Version Deines Programms herausgibst.

    Über die ApplicationDeployment.IsNetworkDeployed-Eigenschaft solltest Du zuvor prüfen,
    ob die Anwendung über ClickOnce installiert wurde - ansonsten liefert das unten stehende
    Beispiel die Assembly-Version:

        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
    
        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
    
    

    Gruß Elmar

    Sonntag, 22. Januar 2012 13:57

Alle Antworten

  • Hallo,

    Die Versionsnummer bei Veröffentlichen bezieht sich auf ClickOnce und hat mit den Assembly Versionsnummern nichts zu tun.
    Auch wenn es durchaus sinnvoll sein kann, die Assembly Version anzupassen, wenn Du eine neue Version Deines Programms herausgibst.

    Über die ApplicationDeployment.IsNetworkDeployed-Eigenschaft solltest Du zuvor prüfen,
    ob die Anwendung über ClickOnce installiert wurde - ansonsten liefert das unten stehende
    Beispiel die Assembly-Version:

        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
    
        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
    
    

    Gruß Elmar

    Sonntag, 22. Januar 2012 13:57
  • Danke, hat mir sehr weitergeholfen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Freitag, 27. Januar 2012 19:25