在检查文件是否正在使用之前,如何使用Wix 3.0执行自定义操作作为系统用户?

时间:2010-01-29 05:33:09

标签: wix

所以我有一个安装IIS7本机代码模块的Wix 3.0项目。卸载时,我希望能够在删除文件之前关闭IIS7应用程序池,以便不需要重新启动。

我正在使用appcmd实用程序来关闭CustomAction元素中的应用程序池,但是当我尝试执行卸载时,我会在调用customaction之前收到此错误:

  

设置必须更新文件或   无法更新的服务   系统正在运行。如果你选择   要继续,需要重新启动   完成设置。

我在CustomAction上设置了“After ='InstallInitialize'”属性,因为文档说任何延迟/未模拟的自定义操作必须介于InstallInitialize和InstallFinalize之间。

在检查正在使用的文件之前,有没有办法让自定义操作执行?或者对给定文件禁用此检查,或者在序列中稍后进行检查?

1 个答案:

答案 0 :(得分:1)

是的,您可以通过修改MSI文件中the InstallExecuteSequence table中的序列列来指定要执行的操作的顺序。

Get the ORCA tool检查MSI文件以查看我的意思,use a Javascript script to modify the MSI as appropriate

alt text http://i48.tinypic.com/29vxgco.jpg