我正在使用 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;
现在成功了。
[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;