如何传递(保存)运行安装程序时选择的安装目录(Inno Setup)

时间:2015-09-29 14:22:53

标签: inno-setup

我正在使用Inno Setup为我的Windows桌面应用程序制作setup.exe文件。效果很好。

一个问题是: 用户可以在运行setup.exe时选择安装目录。

我的Windows应用程序应该知道调整其目录结构的信息。

您能告诉我如何将选定的安装目录传递到其他外部文件或注册表中吗?

1 个答案:

答案 0 :(得分:0)

我假设您将应用程序安装到安装目录。

应用程序知道它的运行位置。

例如在C#中你可以使用:

Assembly.GetExecutingAssembly().Location

所以你不需要在任何地方传递位置。你已经掌握了这些信息。

无论如何,要将安装路径写入注册表,请使用:

[Registry]
Root: HKCU; Subkey: "Software\My Company"; ValueType: string; \
    ValueName: "InstallationPath"; ValueData: "{app}"

或者你可以在安装结束时使用一些指定新路径的自定义参数运行应用程序,让应用程序执行这些操作(可能是静默的):

[Run]
FileName: "{app}\MyProg.exe"; Parameters: "/InstalledTo=""{app}"""; Flags: postinstall

尽管如此,请注意冗余。路径已经在应用程序路径中({app}\MyProg.exe),无需再次传递(Parameters)。