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

在检查文件是否正在使用之前,如何以Wix 3.0的系统用户身份执行自定义操作?,wix,Wix,所以我有一个WIX3.0项目,它安装了一个IIS7本机代码模块。卸载时,我希望能够在删除文件之前关闭IIS7应用程序池,以便无需重新启动 我正在使用appcmd实用程序关闭CustomAction元素中的应用程序池,但当我尝试执行卸载时,在调用CustomAction之前会出现以下错误: 安装程序必须更新文件或文件 在运行时无法更新的服务 系统正在运行。如果你愿意 要继续,需要重新启动 以完成设置 我在CustomAction上设置了“After='InstallInitialize'”属性,因

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

我正在使用appcmd实用程序关闭CustomAction元素中的应用程序池,但当我尝试执行卸载时,在调用CustomAction之前会出现以下错误:

安装程序必须更新文件或文件 在运行时无法更新的服务 系统正在运行。如果你愿意 要继续,需要重新启动 以完成设置

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


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

是,您可以通过修改MSI文件中的序列列来指定操作的顺序

检查MSI文件以了解我的意思,以及


谢谢您提供的信息。事实上,我发现这个问题只有在我以调试模式编译WiX项目时才发生,但这似乎是对我的问题的一个很好的回答,并且会很有用。