Pascal脚本:在设置{app}变量之前取消设置

use*_*760 4 inno-setup

我的Inno设置文件的[Dirs]部分中有一些声明。我使用“ Inno Setup Compiler”和普通的文本编辑器(Notepad ++)进行开发。在选择安装目录之前取消设置时,{app}变量肯定为空。我收到此错误(完全是逻辑错误):

如何解决在按下“取消”按钮并确认要取消设置后没有错误发生的问题?

内部错误:初始化“ app”常量之前,尝试对其进行扩展。

是否可以全局设置{app}变量或为其提供默认值?

这是一个使用变量{app}的代码片段:

[Dirs]
Name: {app}; Permissions: everyone-readexec
Name: {app}\bin; Permissions: everyone-readexec

[Run]
Filename: "{app}\run.exe; Flags: runhidden

[INI]
Filename: {app}\bin\myIni.ini; Section: Settings;

[InstallDelete]
Name: {app}\*; Type: filesandordirs; Tasks: 
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助,问候C。

TLa*_*ama 5

您可以跳过代码,该代码{app}会在初始化常量之前尝试对其进行扩展;或者,作为一种解决方法,您可以使用WizardDirValue,它实际上{app}会在扩展时将值返回给。甚至参考提到(我强调):

返回向导的“选择目标位置”页面上编辑控件的当前内容。

与ExpandConstant('{app}')不同,如果在显示向导之后但在用户选择目录之前调用此函数,则该函数不会失败。相反,它将返回默认目录名称。

在最新的源代码中,您可以看到如何在{app}上扩展常量this line