Inno Setup定义{tmp}位置

时间:2016-05-10 23:28:57

标签: inno-setup

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

C:\ Users \用户名\应用程序数据\本地\温度

而不是:

C:\ Users \用户名\应用程序数据\本地\ TEMP \是-XXXXX.tmp

这是可能的,如果是的话,怎么办呢?

为了扩展原因,为了回应下面的评论,当使用InnoTools Tray时,它会在系统托盘通知区域图标中创建多个条目:

System Tray Notifications

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

如果有另一种解决方法,那么我愿意接受建议。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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