删除文件前提升自定义操作

时间:2014-02-13 08:31:51

标签: wix

我正在尝试使用WiX为我的Windows服务编写安装程序。我的可执行文件可以使用命令行参数--install--uninstall注册/取消注册为Windows服务。这就是我想出的:

<CustomAction Id='InstallAsService' FileKey='CCWirelessServer.exe' ExeCommand='--install' Return='check' Impersonate='no' Execute='deferred' />
<CustomAction Id='InstallAsServiceRollback' FileKey='CCWirelessServer.exe' ExeCommand='--uninstall' Return='check' Impersonate='no' Execute='rollback' />
<CustomAction Id='UninstallAsService' FileKey='CCWirelessServer.exe' ExeCommand='--uninstall' Return='check' Impersonate='no' Execute='deferred' />

<InstallExecuteSequence>
  <Custom Action='InstallAsService' After='InstallFiles' >NOT Installed</Custom>
  <Custom Action='InstallAsServiceRollback' Before='InstallAsService' >NOT Installed</Custom>
  <Custom Action='UninstallAsService' Before='RemoveFiles' >Installed</Custom>
</InstallExecuteSequence>

安装和卸载基本上都有效。但在卸载期间,我收到以下消息:

  

安装程序必须更新系统运行时无法更新的文件或服务。如果您选择继续,则需要重新启动才能完成设置。

尽管出现此错误消息,但服务仍未注册,文件将被删除而不重新启动。对我来说,这似乎是安装程序在执行我的自定义操作之前检查是否已打开CCWirelessServer.exe

所以我的问题是:我如何修改我的安装执行顺序,以便不再出现此错误消息?

1 个答案:

答案 0 :(得分:1)

如果您正在为Windows Installer开发&gt; 3.1您可以查看MSIRESTARTMANAGERCONTROL-property以查看它是否设置正确或其他值是否会停止显示该消息。

我可以使用以下值来抑制消息:

 <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable" Secure="yes" />