2013-07-26 2 views
3

Я пытаюсь использовать макросы/переменные следующим образом, но затем я получаю сообщение об ошибке. Можете ли вы консультироваться?Как использовать переменные макросы с установкой Inno?

#define AnnotateDir "C:\Users\new_skin\Annotate\project" 
#define AnnotateUserInstallAppData "{userappdata}\Annotate3" 


[Files] 
Source: {AnnotateDir}\bin\gm_annotate.exe; DestDir: {app}; Flags: ignoreversion external 

enter image description here

ответ

6

Вы отсутствуют # символ перед именем переменной, которая используется для emit defined variable value на стадии сценария предварительной обработки. Вы можете исправить свой сценарий таким образом:

#define AnnotateDir "C:\Users\new_skin\Annotate\project" 

[Files] 
Source: {#AnnotateDir}\bin\gm_annotate.exe; DestDir: {app}; Flags: ignoreversion external 

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

+0

Спасибо !!!!!!!!! –

+2

Добро пожаловать! Просто намек. Если вы хотите увидеть препроцессорный сценарий, где все ваши определенные переменные заменены, вы можете добавить строку, например '#expr SaveToFile (« c: \ PreprocessedScript.iss »)' в конце вашего скрипта, и вы получите ее сохраненный в указанный файл. – TLama

Смежные вопросы