vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Automatische Build Number auch mit VB Express 
Autor: atrider
Datum: 09.03.08 17:20

Da die VB 2005 Express Version anscheinend die automatische Build Number nicht mitzählen kann und ich das aber gerne hätte, damit ich nicht immer händisch dran denken muss, habe ich mir eine Krücke dazu gebastelt.

Eine Prozedur übernimmt automatisch das Inkrementieren der Build Number in der AssemblyInfo.vb bei jedem Kompilier-Lauf. Fertig. Auf diese Weise hat man in der Exe-Datei immer eine aktuelle Versionsangabe.

Die Profis unter Euch werden sich möglicherweise die Haare raufen, weil man das eleganter lösen kann, aber mir kam auf die Schnelle nichts anderes in den Sinn und es funktioniert - zumindestens bei meiner Installation.
Die von MS vorgesehene Funktion scheint wohl nur in den kostenpflichtigen Versionen zu arbeiten

Wem etwas Besseres zum Thema einfällt, ohne dass man Geld ausgeben muss, darf gerne optimieren

Das How-To:

Ich habe mir ein separates Modul mit Namen "Buildnummer.vb" erstellt und dort diesen Code eingefügt.

In meinem Hauptmodul ("Modul1") setze ich dann als ersten Befehl einfach "BuildNumber()" rein und fertig.

Module Buildnummer
    ''' <summary>
    ''' Prozedur. Ändert in AssemblyInfo.vb die Build-Number der Assembly und 
    ' des Files
    ''' </summary>
    ''' <remarks></remarks>
    Sub BuildNumber()
        Dim f As String = My.Application.Info.DirectoryPath
        If f.Contains("\Debug") Then
            f = f.Replace("bin\Debug", "My Project\AssemblyInfo.vb")
 
            Dim arlFile As New ArrayList
            Using sr As IO.StreamReader = New IO.StreamReader(f)
                Dim line As String
                ' Read and display the lines from the file until the end 
                ' of the file is reached.
                line = sr.ReadLine()
                Do
                    If (line.Contains("AssemblyVersion") And (Not _
                      line.StartsWith("'"))) Then
                        Dim t1 As String = line
                        t1 = t1.Substring(28).Replace(""")>", "")
                        Dim a As String() = t1.Split(".")
                        Dim i As Long = Val(a(3))
                        i = i + 1
                        a(3) = i.ToString
                        line = "<Assembly: AssemblyVersion(""" & a(0) & "." & a( _
                          1) & "." & a(2) & "." & a(3) & """)>"
                    End If
                    If (line.Contains("AssemblyFileVersion") And (Not _
                      line.StartsWith("'"))) Then
                        Dim t1 As String = line
                        t1 = t1.Substring(32).Replace(""")>", "")
                        Dim a As String() = t1.Split(".")
                        Dim i As Long = Val(a(3))
                        i = i + 1
                        a(3) = i.ToString
                        line = "<Assembly: AssemblyFileVersion(""" & a(0) & "." _
                          & a(1) & "." & a(2) & "." & a(3) & """)>"
                    End If
                    arlFile.Add(line)
                    line = sr.ReadLine()
                Loop Until line Is Nothing
                sr.Close()
            End Using
            My.Computer.FileSystem.DeleteFile(f)
            Dim sw As IO.StreamWriter = IO.File.AppendText(f)
            For i As Integer = 0 To arlFile.Count - 1
                sw.WriteLine(arlFile(i))
            Next
            sw.Close()
        End If
    End Sub
End Module
Im eigentlichen Programm steht dann nur noch
Sub Main()
        buildnumber()
Die Datei Buildnummer.vb kann ich nun einfach in ein neues Projekt durch "Hinzufügen" übernehmen und - Voila - habe ich die Funktion auch dort drin.

Man könnte das ganze jetzt noch mit ein paar Fehlerabfangroutinen verfeinern...

Für mich reichts Falls sich noch jemand drüber freuen sollte: gerne
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Automatische Build Number auch mit VB Express1.971atrider09.03.08 17:20
Re: Automatische Build Number auch mit VB Express1.052Melkor09.03.08 18:08
Re: Automatische Build Number auch mit VB Express1.226atrider09.03.08 18:25
Re: Automatische Build Number auch mit VB Express1.088Melkor09.03.08 18:55
Re: Automatische Build Number auch mit VB Express1.069atrider09.03.08 19:45
Re: Automatische Build Number auch mit VB Express998ModeratorFZelle10.03.08 14:22

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel