C # FileVersionInfo.GetVersionInfo (FilePath) ведет себя странно - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь прочитать версию файла из exe-файла. (- не версия продукта.) Я проверил два примера кода.

var versionInfo = FileVersionInfo.GetVersionInfo(FilePath);
string Description = versionInfo .FileDescription;
string Company = versionInfo.CompanyName;
//1
string Fileversion1 = string.Format("{0}.{1}.{2}.{3}", versionInfo.FileMajorPart, versionInfo.FileMinorPart, versionInfo.FileBuildPart, versionInfo.FilePrivatePart);
//2
string Fileversion2 = versionInfo.FileVersion;

Результат показан ниже.

enter image description here

Следующий рисунок является фактическим свойством PowerShell.

enter image description here

Приложения MS, такие как notepad, cmd, получат те же результаты, что и POwershell.

Check Putty с тем же кодом:

enter image description here

Хотелось бы узнать версию файла в свойствах приложения.

У меня есть история обновления с Windows8 до Windows10 через бесплатное обновление до Windows10. Может ли это поведение повлиять на результат?

1 Ответ

0 голосов
/ 15 ноября 2018

Документация по недвижимости FileVersion вводит в заблуждение. Это заставляет вас думать, что это объединение основных, второстепенных, сборочных и частных номеров.

На самом деле, FileVersion извлекается с помощью вызова функции системного API (VerQueryValue), которая может возвращать что-то другое.

...