在我的Wix项目中,我有一个文件"connect.exe",通常在卸载或更新期间运行。在卸载和主要更新期间,Wix将在关闭之前提示通常的"在继续安装之前应关闭以下应用程序"。
此对话框将成功关闭程序:
Action 17:19:59: ShutdownApplications. Shutting down applications
MSI (s) (5C:44) [17:20:02:880]: RESTART MANAGER: Successfully shut down all applications in the service's session that held files in use.
MSI (c) (A4:08) [17:20:02:880]: RESTART MANAGER: Successfully shut down all applications that held files in use.
但紧接着,它会抛出一个错误,说它无法关闭应用程序:
MSI (s) (5C:44) [17:20:33:300]: Note: 1: 1611
MSI (s) (5C:44) [17:20:33:300]: Note: 1: 2205 2: 3: Error
MSI (s) (5C:44) [17:20:33:300]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1611
The setup was unable to automatically close all requested applications. Please ensure that the applications holding files in use are closed before continuing with the installation.
即使应用程序在系统上明显关闭。此外,在安装程序完成更新后进行重大更新时,它不会重新启动它。
其他一切似乎都很好。
值得注意的是,程序连接.exe运行一个大部分时间都隐藏的窗口。它主要用作服务的屏幕显示.exe通过Windows系统服务运行。
我怎样才能解决这个问题才能工作?我没有在连接.exe应用程序端处理某些事情吗?
连接.exe组件条目:
<Component Id="ConnectExe" Guid="..." DiskId="1">
<File Id="connect.exe" Name="connect.exe" Source="..dataconnect.exe" KeyPath="yes">
<Shortcut Advertise="yes" Description="Connect front end application." Directory="ApplicationProgramsFolder" Icon="connect.exe" Id="ConnectStartMenuShortcut" Name="Connect" IconIndex="0" WorkingDirectory="INSTALLDIR">
<Icon Id="connect.exe" SourceFile="..dataconnect.exe" />
</Shortcut>
<Shortcut Advertise="yes" Description="Connect front end application." Directory="StartupFolder" Icon="connect.exe" IconIndex="0" Id="ConnectStartupShortcut" Name="Connect" WorkingDirectory="INSTALLDIR"></Shortcut>
</File>
<RemoveFolder Id="ApplicationProgramsFolder" Directory="ApplicationProgramsFolder" On="uninstall" />
</Component>
日志文件改进? :创建和解释 MSI 日志的不同方法。
:日志文件的其余部分说什么?是否提到其他被锁定的文件?可以在此处找到一些日志记录和日志文件解释提示。
如果您在重启管理器中发现错误,我不会感到惊讶。虽然这是一个相对简单的概念,但它涉及一些非常复杂的东西。隐藏窗口正是这种复杂性的来源。
快速问题:
是否也会关闭引用的服务可执行文件?也许它是由不同的设置安装的?您可以将其设置为关闭并在安装时重新启动。
我假设您已经在应用程序中实现了正确的重新启动管理器支持?
-
Advanced Installer
家伙有一篇非常好的技术文章:How do I add support for Windows Restart Manager to my application?
- PhilDW 在此处解释了实现重启管理器支持的要点。
- 我自己解释重启管理器的尝试可以在这里找到(向下滚动到中间颜色部分(。
-
- 假设您已实现重新启动管理器支持,您是否注册了经过测试的命令行以在安装完成后重新启动应用程序?
一些链接:
MSI 安装程序未更新的正在使用的文件(Visual Studio Installer 项目(
Windows 安装程序 - 安装程序包时避免使用文件对话框
使用 Windows 安装程序重新启动管理器行为