Я использую Inno Setup для установки установщика для приложения. В моем сценарии .iss я использую GetStringFileInfo(SourceDir + "\myapp\myapp.exe", PRODUCT_VERSION)
, чтобы получить «версию продукта» из метаданных моего exe. Чтобы быть более конкретным, я в настоящее время:GetStringFileInfo Not Grabbing Last Character
#define MyAppVersion GetStringFileInfo(SourceDir + "\myapp\myapp.exe", PRODUCT_VERSION)
AppVersion={#MyAppVersion}
К сожалению, это, кажется, не захватывая последний символ версии продукта, и я не могу понять, почему. Так, например, если версия продукта 1.1.1
, то на панели управления я вижу 1.1.
.
Я могу подтвердить ценность версии продукта, щелкнув правой кнопкой мыши на .exe и посмотрев детали, но когда я смотрю на панель управления после установки приложения, последний символ отсутствует.
Я попытался заменить PRODUCT_VERSION
на другие значения метаданных, такие как FILE_VERSION
, и это отлично работает. Проблема только с PRODUCT_VERSION
.
Любые мысли о том, почему это может произойти?
В моем случае ваш код отлично работает для 'PRODUCT_VERSION'. Возможно, вы хотите получить 'FILE_VERSION' вместо' PRODUCT_VERSION'? – RobeN
К сожалению, мы хотели бы использовать 'PRODUCT_VERSION'. – rolledback
Я проверил ваш код на нескольких исполняемых файлах, и во всех случаях функция вернула полную версию продукта. Можете ли вы вызвать 'MsgBox' в' InitializeSetup' с помощью 'ExpandConstant '(' {# MyAppVersion} ')' и опубликовать скриншоты с этим сообщением, а другое - с помощью свойств файла (вкладка сведений)? – RobeN