2016-09-22 2 views
1

В верхней части моего скрипта я определяю номер версии зависимости для программы.Inno Setup: директива или параметр Ошибка проверки «Проверить»: неверный символ «.» found

#define ProductTestsVer "4.13.0.128" 

я затем использовать этот идентификатор в разделе Files в Check функции.

Source: src\ff\ProductTests.exe; DestDir: {app}; Check: RegCheck('Software\FFNVNTest\ProductTests', {#ProductTestsVer}); 

я затем пытаться использовать ту же самую функцию Check в разделе Run, что приводит к ошибке наблюдения:

Directive or parameter "Check" expression error: Invalid symbol '.' found.

Я предполагаю, что я либо сделать глупую ошибку или что вы просто не могут использовать идентификаторы в разделе Run, но я очень подозреваю, что это первый.

спасибо.

ответ

1

Я не думаю, что вы правы. Этот синтаксис не может (и не работает) работать даже в разделе [Files]. Протестировано с последней версией Inno Setup 5.5.9 (как Ansi, так и Unicode).

Если вы проверяете выход препроцессора, вы увидите, что ваш синтаксис решает:

RegCheck('Software\FFNVNTest\ProductTests', 4.13.0.128); 

Это не правильный код Pascal Script. Вы, наверное, хотели:

RegCheck('Software\FFNVNTest\ProductTests', '4.13.0.128'); 

Таким образом, вы должны использовать:

RegCheck('Software\FFNVNTest\ProductTests', '{#ProductTestsVer}'); 
+0

Спасибо Мартину, я знал, что я не мог быть далеко не так. Я предполагаю, что недопустимый '.' в ошибке был'. 'Между' 4' и '13'. Спасибо. –