Wix:可以在InstallValidate之前执行自定义操作吗?

时间:2011-09-09 14:09:55

标签: service wix custom-action

在卸载过程中,安装程序会显示以下消息:

"The setup must update files or services that cannot be updated while the system is running. If you choose to continue, a reboot will be required to complete the setup."

我认为这是由安装的服务在卸载时仍在运行造成的。所以,我尝试编写一个自定义动作来阻止它。但是,它似乎不起作用。

如果我将操作设置为Execute='deferred' Impersonate='no',则只允许我在InstallInitializeInstallFinalize之间执行操作,因此我必须将其设置为“立即”。

<CustomAction BinaryKey='CustomActions' Id='StopService' DllEntry='StopService' Execute='immediate' />

<Custom Action="StopService" Before="InstallValidate">REMOVE="ALL"</Custom>

另请注意,由于某些原因,我必须使用自定义操作手动安装服务,而不是使用Wix。这就是我试图手动删除它的原因。

1 个答案:

答案 0 :(得分:4)

您无法在InstallInitialize之前运行提升的自定义操作。如果您要正常安装该服务,MSI将负责为您停止服务,而不显示正在使用的消息。