Inno安装程序-如何在安装过程中检索环境变量?

时间:2020-09-20 22:07:55

标签: inno-setup

是否可以在运行时将环境变量分配给变量?然后编辑吗? 因此,例如,一台客户端计算机在c:\ Company \ CoolProgram中安装了一个程序,并且该文件夹位置位于名为%InstallLocation%的变量中。因此,如果您回显%InstallLocation%,则会得到c:\ Company \ CoolProgram

我想将插件安装到c:\ Company。这样,CoolProgram和PlugIn将在c:\ Company中并排放置。我读到可以通过定义一个变量并为其分配%installLocation%,然后从该变量中删除\ CoolProgram来完成此操作。例如:

#define PluginLocation GetEnv('InstallLocation')

#define PluginLocation2 StringChange(PluginLocation,“ \ CoolProgram”,“”)

所以,PluginLocation2 = c:\ Company,那很好。除非在编译时进行。构建机器没有此环境变量,而且并非所有客户端都将具有相同的安装位置。因此,%InstallLocation%实际上只是空的,因此PluginLocation和PluginLocation2也为空。

因此,我尝试将变量定义下移至[Setup],希望在客户端运行时查找环境变量。那似乎没有用。我也尝试了[文件],因为我有文件要移到新文件夹中,但是[文件]似乎也在编译过程中。

1 个答案:

答案 0 :(得分:0)

我认为

procedure Test ()  ;
begin
  MsgBox(ExtractFileDir(ExpandConstant( '{app}' ) ) , mbConfirmation, MB_YESNO ) ;      
end;

是您要寻找的。

ExpandConstant( '{app}' )将返回安装应用程序的位置。

并且:ExtractFileDir将从c:\Company中获得c:\Company\CoolProgram

相关问题