Inno Setup 重命名安装文件夹并运行 Exe

问题描述 投票:0回答:1

我正在使用 Inno Setup 创建补丁安装程序。

安装后,我希望 InnoSetup 重命名 Program Files 中的文件夹(如下面的

[Code]
部分所示。

这个效果很好。但是,在安装结束时,它会提示我是否要运行该应用程序。当选择“是”时 - 它会在旧路径中查找 exe 文件。这是有道理的,因为这就是

{app}
变量中的内容。

所以我的问题是,如何使

[Run]
部分查看新的重命名路径?

请注意,我已将

UsePreviousAppDir=yes
设置为 true,并且应该保持设置为 true。

以下是我的InnoSetup的相关参数:

[Setup]
UsePreviousAppDir=yes

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[Code]
{ ///////////////////////////////////////////////////////////////////// }
procedure InitializeWizard();
begin
  RenameFile(ExpandConstant('{app}'), ExpandConstant('..\{app}') + ExpandConstant('{#MyAppName}') + ' ' + ExpandConstant('{#MyAppVersion}'))
end;
inno-setup pascalscript
1个回答
0
投票

现在成功了。

[Run]
Filename: "{app}\..\{#MyAppName} {#MyAppVersion}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[Code]
{ ///////////////////////////////////////////////////////////////////// }
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if (CurStep=ssPostInstall) then
  begin
    RenameFile(ExpandConstant('{app}'), ExpandConstant('{app}\..\{#MyAppName} {#MyAppVersion}'))
  end;
end;
© www.soinside.com 2019 - 2024. All rights reserved.