为什么Inno Setup常量{userdesktop}在OutputDir指令中不起作用以及如何解决?

时间:2019-03-22 22:01:32

标签: inno-setup

我创建了Inno Setup脚本,该脚本运行良好,但是我想更改OutputDir以在桌面上创建输出文件。但是,与其在桌面上创建输出文件,不如在同一目录中创建子文件夹{userdesktop},在该目录中,脚本位于其中,输出位于其中。

到目前为止,我已经找到了解决方案,但是我相信应该有更好的方法。我想念什么?

; these attempts didn't work
[Setup]
OutputDir={userdesktop}
; some more attampts:
OutputDir=userdesktop
OutputDir=userdesktop:
OutputDir="{userdesktop}"

; this workaround worked for me
[Setup]
OutputDir=userdocs:..\Desktop

1 个答案:

答案 0 :(得分:4)

const store = new Vuex.Store({ state: {}, modules: { alertStorage, userStorage, }, plugins: [vuexPersist.plugin] // Do not comment it out }); 这样的

Constants在安装时(在目标用户计算机上)而不是在编译时(在您的开发计算机上)解决。因此,在像OutputDir这样的仅编译时指令中使用常量是没有意义的。实际上,根本不可能使用它们(因为它没有用)。

使用默认的用户个人资料目录布局,可以使用{userdesktop}前缀,就像以前一样:

userdocs:

尽管这不是一个完美的解决方案,因为用户可以移动“文档” 文件夹,然后[Setup] OutputDir=userdocs:..\Desktop 不会指向桌面。

一种更可靠的解决方案是通过USERPROFILE environment variable使用GetEnv preprocessor function

userdocs:..\Desktop