4

ファイルのリストからバージョン情報を使用C#して抽出しようとしています。System.Diagnostics.FileVersionInfoこれを行う目的は、一意のファイルパスとバージョンの組み合わせを追跡することです。ファイルが変更されたとき、正確に何が変更されたかに応じて、さまざまなことが起こるようにしたいと思います。

FileVersionProductVersionプロパティの両方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 に答える