Assembly Version eines Projekts ausgeben

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von BigBen2003.

    Assembly Version eines Projekts ausgeben

    Hallo,

    ich versuche, die eigene Projekt-Version auszulesen.

    Mit dem nachstehendem Code wird allerdings immer nur "1.0.0.0" ausgegeben:

    VB.NET-Quellcode

    1. System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()


    Weiß jemand, wie die korrekte Information ausgelesen werden kann?
    Hast Du die Assemblyversion denn geändert? sonst steht die ja auf 1.0.0.0

    VB.NET-Quellcode

    1. ​My.Application.Info.Version.ToString
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.
    @Akanel mitm VisualBasic-Namespace :?:
    @BigBen2003 Was genau suchst Du?
    Version hat nicht nur die Methode .ToString(): msdn.microsoft.com/de-de/libra…me.version(v=vs.110).aspx
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ähm nein, den Namespace nutze ich natürlich nicht.
    Erläutere bitte wie Du darauf kommst. Ist mein Code etwa falsch?

    Jetzt hast Du mich echt unsicher gemacht mit dem Namespace und habe nochmal nachgesehen. NEIN ich nutze den Namespace nicht. Ist bei den Grundeinstellungen schon rausgenommen.

    Ich habe jetzt mal ein Testprojekt erstellt.
    Assemblyversion auf 1.0.0.5 gestellt und VisualBasic Namespace ist raus.


    Dann folgenden Code und es wird beides angezeigt.

    VB.NET-Quellcode

    1. ​Public Class Form1
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. Me.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
    4. Me.Text &= "/" & My.Application.Info.Version.ToString
    5. End Sub
    6. End Class
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Akanel“ ()

    Akanel schrieb:

    Erläutere bitte wie Du darauf kommst.

    Akanel schrieb:

    VB.NET-Quellcode

    1. My.Application
    Geh mal in den IlSpy mit einem entsprechenden Testprogramm und klicke dirt auf Version.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo,

    vielen Dank für die Infos.

    Zum Testen wurde die Version auf eine andere als 1.0.0.0 gestellt.

    VB.NET-Quellcode

    1. My.Application.Info.Version.ToString

    VB.NET-Quellcode

    1. System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()


    Diese Befehle geben auch nur die Version 1.0.0.0 aus, obwohl eine andere einstellt wurde.

    Nachtrag:
    Habe mittlerweile den Fehler gefunden:

    In den Projekt-Einstellungen gibt es an zwei Stellen ein Versions-Eingabefeld:

    Anwendung, Assemblyinformationen:


    Veröffentlichung


    Bislang hatte ich nur die Einstellungen im Veröffentlichungs-Version beachtet.
    Die Einstellungen in den Datei- und Produktversion standen somit immer auf "1.0.0.0". Somit war die ausgelesene Version absolut korrekt.

    Für alle die ebenfalls die Versionsinformationen auslesen wollen:

    Der Code zum Auslesen der Datei-Version stammt von dieser Webseite: stackoverflow.com/questions/90…the-assembly-file-version

    VB.NET-Quellcode

    1. Private Structure Versions
    2. Public FileVersion As FileVersionInfo
    3. Public AssemblyVersion As Version
    4. End Structure
    5. Private Function GetVersion() As Versions
    6. Dim myOut As New Versions
    7. Dim myAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
    8. Dim fvi As FileVersionInfo = FileVersionInfo.GetVersionInfo(myAssembly.Location)
    9. myOut.FileVersion = fvi
    10. myOut.AssemblyVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version
    11. Return myOut
    12. End Function


    Wer möchte, kann die Versionen auch automatisch erhöhen lassen: kaisnet.de/page/assemblyversion-automatisch-erhoehen
    Alternativ kann auch ein AddIn für Visual Studio eingesetzt werden: https://marketplace.visualstudio.com/items?itemName=PrecisionInfinity.AutomaticVersions

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „BigBen2003“ ()