0

我对 WIX 很陌生,并且正在使用最小的 GUI 来安装和卸载 dll。此 dll 在我在安装时调用的自定义安装脚本中注册为服务。

卸载后,我在自定义脚本中停止并取消注册该服务。

我的问题是,在调用自定义卸载脚本之前,我得到了正在使用的文件对话框,因为服务正在使用 dll。我想避免这种情况,因为我知道我将在自定义卸载操作中停止服务。

这个问题有什么简单的解决方案吗?

谢谢!尼基尔。

4

1 回答 1

0

您是否使用自定义操作来停止服务?如果是这样,我会确保在删除文件之前运行您的自定义操作

IE

<CustomAction Id="StopService" Directory="DirMyService" ExeCommand="NET STOP ServiceName" />
<CustomAction Id="StartService" Directory="DirMyService" ExeCommand="NET START ServiceName" />

<InstallExecuteSequence>
  <Custom Action="StopService" After="InstallInitialize">Installed</Custom>
  <Custom Action="StartService" Before="InstallFinalize">Installed</Custom>
</InstallExecuteSequence>

尚未对此进行测试,因此您可能需要在网络停止等之前插入windir,而这些可能是放置它以停止/启动脚本的错误位置。但可能会让您了解如何解决您的问题。

于 2013-08-29T13:19:42.000 回答