如何在InstallShield 2021 UI中为退出条件检查源目录文件存在(无需MSI/InstallScript)
在InstallShield 2021中通过UI操作实现退出条件的源目录文件存在检查
核心实现思路
不用InstallScript或直接修改MSI,仅通过Suite项目的UI操作,可借助自定义Suite属性+系统命令动作+条件判断来完成源目录文件存在性检查,全程可视化配置。
具体操作步骤
创建自定义布尔属性
- 打开Suite项目,切换到
Advanced Settings > Properties面板 - 点击工具栏
New按钮,新建属性:命名为SOURCE_TARGET_FILE_EXISTS,类型选Boolean,默认值设为False
- 打开Suite项目,切换到
添加源文件检查的自定义动作
- 切换到
Advanced Settings > Custom Actions面板 - 新建
Launch File类型动作:- File to Launch:选择系统自带的
cmd.exe - Arguments:输入
/c if exist "[SourceDir]\第二个文件夹\目标文件名.ext" echo 1 > "%temp%\is_filecheck.tmp"(替换实际的文件夹名和文件名) - Execution Stage:选择
Before UI Sequence(确保在退出条件验证前执行) - Execution Condition:留空(始终执行)
- File to Launch:选择系统自带的
- 再新建
Set Suite Property类型动作:- Property Name:选择刚创建的
SOURCE_TARGET_FILE_EXISTS - Property Value:输入
[FileRead("%temp%\is_filecheck.tmp")] - Execution Stage:选择
After Previous Action(紧跟cmd动作执行) - 可选勾选
Fail if property is not set,确保读取失败时能触发异常
- Property Name:选择刚创建的
- 切换到
配置退出条件
- 切换到
General Information > Exit Conditions面板 - 点击
New按钮添加退出条件:- Condition:输入
SOURCE_TARGET_FILE_EXISTS = "False" - Message:填写提示文本,比如
安装源文件缺失,请检查安装包完整性后重试。 - Exit Code:设置非0值(如1603,代表安装失败)
- Condition:输入
- 切换到
关键注意点
[SourceDir]是Suite项目内置的源路径属性,在UI序列启动前就会完成初始化,可可靠指向安装包所在的源目录- 临时文件
%temp%\is_filecheck.tmp会被系统自动清理,无需手动处理 - 若文件路径包含空格,需给路径添加双引号,例如
"[SourceDir]\第二个 文件夹\目标文件名.ext"
内容的提问来源于stack exchange,提问作者WhiteWalker
相关产品推荐
相关产品推荐

