我正在使用InnoSetup创建一个补丁安装程序。
安装后,我希望InnoSetup重命名程序文件中的文件夹(如您可以在下面的[Code]
部分看到)。
这很好。但是,在安装结束时,它会提示我是否要运行应用程序。当选择yes时,它会在旧路径中查找exe文件。这是有意义的,因为这是{app}
变量中的内容。
所以我的问题是,我如何使[Run]
部分查看新的重命名路径?
请注意,我有UsePreviousAppDir=yes
设置为真,应该保持设置为真。
下面是我的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;