4

我正在尝试使用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)"
4

1 回答 1

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);
于 2011-12-21T02:04:33.587 回答