2016-11-30 4 views
-1

Я использую 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.

Любые мысли о том, почему это может произойти?

+0

В моем случае ваш код отлично работает для 'PRODUCT_VERSION'. Возможно, вы хотите получить 'FILE_VERSION' вместо' PRODUCT_VERSION'? – RobeN

+0

К сожалению, мы хотели бы использовать 'PRODUCT_VERSION'. – rolledback

+0

Я проверил ваш код на нескольких исполняемых файлах, и во всех случаях функция вернула полную версию продукта. Можете ли вы вызвать 'MsgBox' в' InitializeSetup' с помощью 'ExpandConstant '(' {# MyAppVersion} ')' и опубликовать скриншоты с этим сообщением, а другое - с помощью свойств файла (вкладка сведений)? – RobeN

ответ

0

Извините за то, что вы так решили по этому вопросу! Мне пришлось немного отойти от этой проблемы. Оказывается, это была проблема с библиотекой, которую я использовал, электронным упаковщиком, который, похоже, был устранен путем обновления до последней версии. Хотя я не мог найти что-либо в своем журнале проблем, который был связан с этим, он определенно оказался проблемой. Спасибо всем, кто потратил время на этот вопрос.