有时候在安装的过程中需要调用某些文件(bat或者exe等文件),但是只需要使用一次,然后就可以删掉该文件,

在Innosetup中应该这样操作:

1.在.iss脚本的[Files]章节写下:

Source: ..\fileName.exe ; DestDir: {tmp}; Flags:deleteafterinstall

Source 是Innosetup关键字;

..\fileName.exe 其中fileName.exe为所要压缩的文件,..\指当前工作目录;

DestDir: {tmp} 表示该文件在安装时会解压到系统的temp目录下;

Flags:deleteafterinstall 表示该文件在安装完成后会被删除

2. 通过ExtractTemporaryFile()方法来获取该文件,

ExtractTemporaryFile('fileName.exe');
fullPath := ExpandConstant('{tmp}\fileName.exe');
Exec(fullPath, '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);

注意:
ExtractTemporaryFile('fileName.exe') 表示从系统的temp临时目录中获取该文件的操作句柄

( 简单来说,就是要调用一下该方法才能使用该文件 )


fullPath := ExpandConstant('{tmp}\fileName.exe') 获取该文件解压后的真实路径,

其中{tmp}是Innosetup定义的,对应Windows系统的temp目录


Exec(fullPath, '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) 其中Exec()方法是Innosetup中的方法,类似于在cmd中执行命令