2011-12-21 5 views
2

J'essaye d'utiliser C# et System.Diagnostics.FileVersionInfo pour extraire les informations de version d'une liste de fichiers. Mon but pour ce faire est de garder trace des combinaisons uniques de chemin de fichier et de version. Lorsque les fichiers changent, j'aimerais que diverses choses se produisent en fonction de ce qui a changé exactement. J'ai utilisé les propriétés FileVersion et ProductVersion de FileVersionInfo en vain. Les deux rapportent un numéro de version différent de ce qui est rapporté dans l'explorateur.FileVersionInfo ne correspond pas Détails onglet dans l'Explorateur

Un exemple en utilisant explorer.exe

Explorer Details tab reports: "6.1.7601.17567" (for both File and Product) 
FVI.ProductVersion reports: "6.1.7600.16385" 
FVI.FileVersion reports: "6.1.7600.16385 (win7_rtm.090713-1255)" 

Répondre

3

Pour une raison quelconque la propriété ProductVersion ne correspond pas à la ProductMajorPart/MinorPart/BuildPart/PrivatePart ... Pour obtenir la version actuelle, vous pouvez le faire:

var fvi = FileVersionInfo.GetVersionInfo(path); 
var productVersion = new Version(
          fvi.ProductMajorPart, 
          fvi.ProductMinorPart, 
          fvi.ProductBuildPart, 
          fvi.ProductPrivatePart); 
var fileVersion = new Version(
          fvi.FileMajorPart, 
          fvi.FileMinorPart, 
          fvi.FileBuildPart, 
          fvi.FilePrivatePart); 
+0

A travaillé parfaitement. Merci. La sagesse infinie de Microsoft. – Vitus