marcoborn
Goto Top

Datei-Version mit .NET ermitteln

Hallo Forum,
ich möchte per VB.NET die Datei-Version (Major, Minor, Revision und Build) einer DLL ermitteln, die auf meiner Platte gespeichert wurde. Diese DLL habe ich zuvor selbst erstellt und mit folgenden Infos in der AssemblyInfo.vb versehen:
<Assembly: AssemblyFileVersion("2.1.5.0")>
<Assembly: AssemblyVersion("2.1.5.*")>

Wenn ich die Versionsinfo direkt in der DLL ermitteln möchte, funktioniert das mit folgendem Befehl ohne Probleme und ich erhalte wie gewünscht "2.1.5.0" als Resultat:
MsgBox(System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString())


Der Versuch, die Infos aus einem anderen Projekt heraus mit dem folgenden Befehl aufzurufen, liefert stattdessen als Ergebnis "0.30.22.1":
MsgBox (FileVersionInfo.GetVersionInfo("C:\FK.xll").FileMajorPart.ToString)


Wie schaffe ich es, die korrekten Werte ("2.1.5.0") zu erhalten, wenn die DLL nicht im aktuellen Projekt geladen ist?

Vielen Dank im voraus,
Marco

Content-ID: 208771

Url: https://administrator.de/contentid/208771

Ausgedruckt am: 19.11.2024 um 12:11 Uhr

MrTrebron
MrTrebron 27.06.2013 um 16:45:11 Uhr
Goto Top
Hallo Marco,

versuche mal
Dim FilePath As String = "Pfad zum File"  
Dim VersionInfo As FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(FilePath)


Gruß
Norbert
MarcoBorn
MarcoBorn 27.06.2013 um 17:01:38 Uhr
Goto Top
Hallo Norbert,
vielen Dank für die schnelle Antwort. Leider liefert dies ebenfalls wieder den Wert "0.30.22.1".

Hat jemand eine andere Idee?

Viele Grüße,
Marco
colinardo
colinardo 28.06.2013 aktualisiert um 11:58:09 Uhr
Goto Top
Hallo Marco,
Wie siehts damit aus:
Dim vi As FileVersionInfo = FileVersionInfo.GetVersionInfo("c:\FK.dll")  
Msgbox (vi.ProductVersion)
das geht hier einwandfrei.

Grüße Uwe
MarcoBorn
MarcoBorn 28.06.2013 um 08:41:35 Uhr
Goto Top
Hallo Uwe, danke für diese Variante, aber sie liefert ebenfalls den falschen Wert. So langsam bin ich am Verzweifeln...
MrTrebron
MrTrebron 28.06.2013 um 09:59:17 Uhr
Goto Top
Servus Marco,

mache mal im Explorer einen Rechtsklick auf deine DLL und lass dir mal die Eigenschaften anzeigen, genauer gesagt die Details
Was bekommst du denn als Produktversion, bzw Dateiversion angezeigt?

Gruß
Norbert
MrTrebron
MrTrebron 28.06.2013 um 10:07:53 Uhr
Goto Top
Hi

was bei mir klappt ist
Dim myAssembly As String = System.Reflection.AssemblyName.GetAssemblyName(FilePath).Version.ToString

Gruß
Norbert
MarcoBorn
MarcoBorn 04.07.2013 um 08:16:06 Uhr
Goto Top
Hallo Norbert,
leider hat Deine Version auch nicht funktioniert. Ich habe zwischenzeitlich herausgefunden, dass die Werte beim Compilieren nicht korrekt gesetzt wurden. Ich habe mich mit Verpatch beholfen, das die Versionsnummern nachträglich setzen kann.

Vielen Dank für die Hilfe,
Marco