ich bin über folgende Funktionen gestolpert:
- System.Diagnostics.FileVersionInfo.GetVersionInfo
- System.IO.FileInfo
- AssemblyName.GetAssemblyName().Version
- (wahrscheinlich gibts noch mehr)
Kann mir jemand sagen, wo die Unterschiede sind
und was man wofür benutzen sollte.
Ich nehme mal an, das man als Dateiversionsvergleich
von z.B. Win32-DLLs, .Net-DLLs und .Net-EXEn
am besten System.Diagnostics.FileVersionInfo.GetVersionInfo
nutzt, oder kommen da andere Funktionen zu anderen Ergebnissen.
"Stefan Gentzmer" <Deve...@gentzmer.de> schrieb:
> - System.Diagnostics.FileVersionInfo.GetVersionInfo
Ermittelt die Versionsinformationen zu einer physikalischen Datei,
beispielsweise EXE-Datei.
> - System.IO.FileInfo
Hiermit kann man nicht die Version einer Datei (EXE etc.) ermitteln.
> - AssemblyName.GetAssemblyName().Version
Ermittelt die Version der "aktuellen" Assembly.
> Ich nehme mal an, das man als Dateiversionsvergleich
> von z.B. Win32-DLLs, .Net-DLLs und .Net-EXEn
> am besten System.Diagnostics.FileVersionInfo.GetVersionInfo
Würde ich auch meinen.
Grüsse,
Herfried K. Wagner
Moin Stefan
Die .NET Compiler erzeugen beim Erstellen eines Assemblies automatisch die
klassische Win32-Versionsresource. Dabei tragen Sie als Productversion und
Fileversion die im Attribut AssemblyVersion angegebene Versionsnummer ein.
Diese klassische Versionsresource kann mit der Funktion
System.Diagnostics.FileVersionInfo.GetVersionInfo ausgelesen werden und
liefert die Ergebnisse als FileVersionInfo zurück. Über FileVersionInfo
kommt man dann an die einzelnen Einträge wie Produktnummer, Fileversion,
usw. ran. Diese Versionsresource hat jedoch nichts mit der Versionierung der
CLR zu tun.
Maßgeblich für die Versionierungsmechnismen der CLR ist die im Manifest des
Assemblies eingetragenen Versionsnummer.
Sie kann mit dem Aufruf AssemblyName.GetAssemblyName().Version ermittelt
werden.
Hope that helps
Michael Willers