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-Key: 208771

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

Printed on: May 8, 2024 at 19:05 o'clock

Member: MrTrebron
MrTrebron Jun 27, 2013 at 14:45:11 (UTC)
Goto Top
Hallo Marco,

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


Gruß
Norbert
Member: MarcoBorn
MarcoBorn Jun 27, 2013 at 15:01:38 (UTC)
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
Member: colinardo
colinardo Jun 27, 2013, updated at Jun 28, 2013 at 09:58:09 (UTC)
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
Member: MarcoBorn
MarcoBorn Jun 28, 2013 at 06:41:35 (UTC)
Goto Top
Hallo Uwe, danke für diese Variante, aber sie liefert ebenfalls den falschen Wert. So langsam bin ich am Verzweifeln...
Member: MrTrebron
MrTrebron Jun 28, 2013 at 07:59:17 (UTC)
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
Member: MrTrebron
MrTrebron Jun 28, 2013 at 08:07:53 (UTC)
Goto Top
Hi

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

Gruß
Norbert
Member: MarcoBorn
MarcoBorn Jul 04, 2013 at 06:16:06 (UTC)
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