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

Inno setup 如何在运行安装程序(Inno Setup)时传递(保存)所选的安装目录,inno-setup,Inno Setup,我正在使用为我的Windows桌面应用程序创建setup.exe文件。它工作得很好 一个问题是: 用户可以在运行setup.exe时选择安装目录 我的Windows应用程序应该知道这些信息,以调整其目录结构 您能告诉我如何将选定的安装目录传递到其他外部文件或注册表中吗?我假定您将应用程序安装到安装目录中 而且应用程序知道它从哪里运行 例如,在C#中,您可以使用: Assembly.getExecutionGassembly()位置 因此,您不需要在任何地方传递该位置。你已经知道了 无论如何,

我正在使用为我的Windows桌面应用程序创建setup.exe文件。它工作得很好

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

我的Windows应用程序应该知道这些信息,以调整其目录结构


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

我假定您将应用程序安装到安装目录中

而且应用程序知道它从哪里运行

例如,在C#中,您可以使用:

Assembly.getExecutionGassembly()位置
因此,您不需要在任何地方传递该位置。你已经知道了


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

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

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


尽管如此,还是要注意冗余。路径已在应用程序路径(
{app}\MyProg.exe
)中,无需再次传递它(在
参数中)。

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

而且应用程序知道它从哪里运行

例如,在C#中,您可以使用:

Assembly.getExecutionGassembly()位置
因此,您不需要在任何地方传递该位置。你已经知道了


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

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

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


尽管如此,还是要注意冗余。路径已在应用程序路径(
{app}\MyProg.exe
)中,无需再次传递它(在
参数中)。

谢谢。在运行setup.exe时,用户可以选择任何目录信息,而应用程序不知道这些信息。这就是为什么我需要把信息传递到某个地方。我认为使用注册表的方式将是一个解决办法。但它只能在Windows上工作。我可以在任何地方传递它吗?你的意思是应用程序必须在安装过程中对更改的目录做些什么吗?你的目标并不明确。仅适用于Widows:Inno安装程序仅适用于Windows。所以这不是一个限制。从哪里经过?另一个选择是运行应用程序,在命令行上传递目录,查看我的编辑。这就是我想知道的。我想我们可以在setup.exe完成后运行任何小程序。伟大的非常感谢你!!!谢谢在运行setup.exe时,用户可以选择任何目录信息,而应用程序不知道这些信息。这就是为什么我需要把信息传递到某个地方。我认为使用注册表的方式将是一个解决办法。但它只能在Windows上工作。我可以在任何地方传递它吗?你的意思是应用程序必须在安装过程中对更改的目录做些什么吗?你的目标并不明确。仅适用于Widows:Inno安装程序仅适用于Windows。所以这不是一个限制。从哪里经过?另一个选择是运行应用程序,在命令行上传递目录,查看我的编辑。这就是我想知道的。我想我们可以在setup.exe完成后运行任何小程序。伟大的非常感谢你!!!