InnoSetup 重命名安装文件夹和 运行 Exe
InnoSetup Rename Install Folder and Run Exe
我正在使用 InnoSetup 创建补丁安装程序。
安装后,我希望 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;
我正在使用 InnoSetup 创建补丁安装程序。
安装后,我希望 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;