Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Здравствуйте.
Начал разбираться с NSIS и тут же уперся.
Банальная, думаю, задача.
Надо прочитать номер версии файла, поместить результат в name и в инсталлятор.

Делаю так:
Код: Выделить весь код
!define PRODUCT_NAME "MyProg"
!define PRODUCT_PUBLISHER "MyCorp"
!define EXE_FULL_NAME "D:\4inst\prog.exe"
var PROD_VERSION

Name "${PRODUCT_NAME} v$PROD_VERSION"

...

VIProductVersion "1.0.0.0"
VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
VIAddVersionKey "LegalCopyright" "${PRODUCT_PUBLISHER}"
VIAddVersionKey "CompanyName" "${PRODUCT_PUBLISHER}"
VIAddVersionKey "FileDescription" "${PRODUCT_NAME} ${PROD_VERSION}"
VIAddVersionKey "FileVersion" "1.0.0.0"

...

Function .onInit
  !insertmacro MUI_LANGDLL_DISPLAY
  !include "FileFunc.nsh"
  ${GetFileVersion} "${EXE_FULL_NAME}" $R0
  StrCpy $PROD_VERSION $R0
FunctionEnd
Получаю очень неожиданный (для меня) результат: При установке все так как должно быть: "Вас приветствует мастер установки MyProg v1.0.0.0"... Однако, когда запускаешь деисталлятор, номер версии теряется: "Вы уверены в том, что желаете удалить MyProg v и все компоненты..."

А с записью информации о версии в инсталлятор совсем ничего не выходит, пока не укажу номер версии явно.

Отправлено: 08:17, 18-04-2014 | #1146