通过 Inno Setup 创建的安装程序,在 Windows 10 安装期间无法关闭应用程序
Installer created via Inno Setup, can't close applications during installation on Windows 10
我已经使用 Inno Setup 为我的应用程序创建了一个安装程序。有一段时间一切正常,但最近安装程序无法在 Windows 10 上关闭 explorer.exe
(Windows Explorer)。安装程序需要重新启动它以用新的替换现有的上下文菜单处理程序,但更奇怪的是同一个安装程序在 Windows 8 和 8.1 上工作正常。添加 restartreplace
标志没有帮助。
我还注意到安装程序无法关闭当前 运行 应用程序(需要更新的旧应用程序)并且与之前的问题一样,应用程序可以在 Windows 8 或 8.1 中关闭使用相同的安装程序。
这是来自 Inno Setup 安装程序的日志:
[11:22:34.819] Setup application started
[11:22:34.983] Setup version: Inno Setup version 5.5.9 (a)
[11:22:34.984] Original Setup EXE: ***
[11:22:34.984] Setup command line: /SL5="$C0928,15589089,85504,***" /DEBUGWND=464
[11:22:34.985] Windows version: 10.0.14393 (NT platform: Yes)
[11:22:34.985] 64-bit Windows: Yes
[11:22:34.985] Processor architecture: x64
[11:22:34.985] User privileges: Administrative
[11:22:34.987] 64-bit install mode: Yes
[11:22:34.991] Created temporary directory: C:\Users\Azat\AppData\Local\Temp\is-M4710.tmp
[11:22:37.584] RestartManager found an application using one of our files: Windows Explorer
[11:22:37.585] Can use RestartManager to avoid reboot? Yes (0)
[11:22:39.780] Starting the installation process.
[11:22:39.789] Shutting down applications using our files.
[11:23:09.944] Some applications could not be shut down.
[11:23:09.945] Message box (Abort/Retry/Ignore):
Setup was unable to automatically close all applications. It is recommended that you close all applications using files that need to be updated by Setup before continuing.
Click Retry to try again, Ignore to proceed anyway, or Abort to cancel installation.
[11:25:30.543] User chose Abort.
[11:25:30.544] User canceled the installation process.
[11:25:30.545] Rolling back changes.
[11:25:30.547] Starting the uninstallation process.
[11:25:30.548] Uninstallation process succeeded.
[11:25:32.049] Deinitializing Setup.
[11:25:32.071] Setup exit code: 5
我不知道为什么安装程序无法关闭应用程序。
但您可以尝试 force
option 来解决这个问题:
CloseApplications=force
我有一个案例 CloseApplications=force
没有帮助,唯一的解决方案是手动终止 运行 应用程序。
我最终使用了这样的东西:
[Files]
Source: "My Service 1.exe"; DestDir: "{app}"; Flags: ignoreversion; BeforeInstall: TaskKill('My Service 1.exe')
[Code]
procedure TaskKill(fileName: String);
var
resultCode: Integer;
begin
Exec(ExpandConstant('taskkill.exe'), '/f /im ' + '"' + fileName + '"', '', SW_HIDE, ewWaitUntilTerminated, resultCode);
end;
来源 -
我已经使用 Inno Setup 为我的应用程序创建了一个安装程序。有一段时间一切正常,但最近安装程序无法在 Windows 10 上关闭 explorer.exe
(Windows Explorer)。安装程序需要重新启动它以用新的替换现有的上下文菜单处理程序,但更奇怪的是同一个安装程序在 Windows 8 和 8.1 上工作正常。添加 restartreplace
标志没有帮助。
我还注意到安装程序无法关闭当前 运行 应用程序(需要更新的旧应用程序)并且与之前的问题一样,应用程序可以在 Windows 8 或 8.1 中关闭使用相同的安装程序。
这是来自 Inno Setup 安装程序的日志:
[11:22:34.819] Setup application started
[11:22:34.983] Setup version: Inno Setup version 5.5.9 (a)
[11:22:34.984] Original Setup EXE: ***
[11:22:34.984] Setup command line: /SL5="$C0928,15589089,85504,***" /DEBUGWND=464
[11:22:34.985] Windows version: 10.0.14393 (NT platform: Yes)
[11:22:34.985] 64-bit Windows: Yes
[11:22:34.985] Processor architecture: x64
[11:22:34.985] User privileges: Administrative
[11:22:34.987] 64-bit install mode: Yes
[11:22:34.991] Created temporary directory: C:\Users\Azat\AppData\Local\Temp\is-M4710.tmp
[11:22:37.584] RestartManager found an application using one of our files: Windows Explorer
[11:22:37.585] Can use RestartManager to avoid reboot? Yes (0)
[11:22:39.780] Starting the installation process.
[11:22:39.789] Shutting down applications using our files.
[11:23:09.944] Some applications could not be shut down.
[11:23:09.945] Message box (Abort/Retry/Ignore):
Setup was unable to automatically close all applications. It is recommended that you close all applications using files that need to be updated by Setup before continuing.
Click Retry to try again, Ignore to proceed anyway, or Abort to cancel installation.
[11:25:30.543] User chose Abort.
[11:25:30.544] User canceled the installation process.
[11:25:30.545] Rolling back changes.
[11:25:30.547] Starting the uninstallation process.
[11:25:30.548] Uninstallation process succeeded.
[11:25:32.049] Deinitializing Setup.
[11:25:32.071] Setup exit code: 5
我不知道为什么安装程序无法关闭应用程序。
但您可以尝试 force
option 来解决这个问题:
CloseApplications=force
我有一个案例 CloseApplications=force
没有帮助,唯一的解决方案是手动终止 运行 应用程序。
我最终使用了这样的东西:
[Files]
Source: "My Service 1.exe"; DestDir: "{app}"; Flags: ignoreversion; BeforeInstall: TaskKill('My Service 1.exe')
[Code]
procedure TaskKill(fileName: String);
var
resultCode: Integer;
begin
Exec(ExpandConstant('taskkill.exe'), '/f /im ' + '"' + fileName + '"', '', SW_HIDE, ewWaitUntilTerminated, resultCode);
end;
来源 -