Inno Setup 定义 {tmp} 位置

Inno Setup define the {tmp} location

我需要定义 {tmp} 常量(即自动生成的 TEMP 位置),以便它始终保持不变并且不会在每次 运行 时改变。理想情况下将其设置为用户 TEMP 目录的根目录,而不是自动创建的子目录(例如 is-70G7E.tmp):

C:\Users\Username\AppData\Local\Temp

而不是:

C:\Users\Username\AppData\Local\Temp\is-XXXXX.tmp

这是否可能,如果可能,如何实现?

为了进一步说明这一点的原因,响应下面的评论,当使用 InnoTools Tray 时,它会在系统托盘通知区域图标中创建多个条目:

这是因为每次都是 运行,它是来自不同 {tmp} 文件夹的 运行。如果我可以自己手动将其设置为常量并处理检查正在使用的文件等问题,它将解决此问题。

如果有其他方法可以解决这个问题,那么我愿意接受建议。

您没有说明为什么需要常量,但如果您使用常量文件夹,可能会出现问题。如果其中的文件夹或文件正在使用中怎么办?这就是 {tmp} 不同的原因,Inno Setup 会为您处理。

但是,您可以使用 {%TEMP} 常量或 GetTempDir function 代替,将您喜欢的子文件夹作为常量。不过,您可能需要处理它的创建和删除。

这不可能。 TEMP 中随机子目录的创建是硬编码的。没有办法改变它。

请参阅 Inno Setup 源代码中的 CreateTempDir function