我正在尝试使用C#
和System.Diagnostics.FileVersionInfo
从文件列表中提取版本信息。我这样做的目的是跟踪唯一的文件路径和版本组合。当文件发生变化时,我会根据确切的变化发生各种事情。
我已使用FileVersion
的ProductVersion
和FileVersionInfo
属性无效。两者都报告的版本号不同于资源管理器中报告的版本号。
使用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)"
答案 0 :(得分:4)
由于某种原因,ProductVersion
属性与ProductMajorPart / MinorPart / BuildPart / PrivatePart不匹配...要获得实际版本,您可以执行此操作:
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);