WIX:您可以在两个组件或功能之间运行自定义操作吗?
我是WIX(Windows Installer XML)的新手,有些东西我不明白 在我看来,自定义操作和功能之间存在矛盾:功能由安装用户选择,并按程序员确定的顺序运行。自定义操作是其中的一部分(特别是当安装需要运行外部脚本或EXE时),但在我看来,它们不能作为一组功能的一部分运行—只能在运行所有功能之前或之后运行WIX:您可以在两个组件或功能之间运行自定义操作吗?,wix,windows-installer,Wix,Windows Installer,我是WIX(Windows Installer XML)的新手,有些东西我不明白 在我看来,自定义操作和功能之间存在矛盾:功能由安装用户选择,并按程序员确定的顺序运行。自定义操作是其中的一部分(特别是当安装需要运行外部脚本或EXE时),但在我看来,它们不能作为一组功能的一部分运行—只能在运行所有功能之前或之后运行 能否设置自定义操作以在组件内运行?您可以设置一个自定义操作在两个功能之间运行吗?否。功能仅为逻辑实体,旨在为安装产品的人员提供选择所需组件的方式。组件更接近“真实”,但在某种意义上,它
能否设置自定义操作以在组件内运行?您可以设置一个自定义操作在两个功能之间运行吗?否。功能仅为逻辑实体,旨在为安装产品的人员提供选择所需组件的方式。组件更接近“真实”,但在某种意义上,它们只描述将安装哪些文件和注册表项等。所有实际工作都参与到操作中,无论是自定义操作还是自定义操作
查看内置MSI的StutialExtExeStudio等式,只考虑安装文件、WrreSeriGristyValm和MyCuffActudio。简化一点,将检查所有选定的组件,以确定要安装的文件,并将它们复制到目标。将检查所有选定组件,并写入其注册表项和值。您的自定义动作可以在这些动作之前或之后发生,但不能在中间出现。(即使可以,InstallFiles和WriterRegistryValue中的操作顺序也不一定是您可以控制的。)
顺便说一句,我猜您会问这个问题,因为您的场景似乎要求您执行的代码取决于确切的机器状态。例如,您可能希望在文件a存在的情况下运行自注册例程,但文件B仍然丢失。这不是Windows Installer的正确方法。在本例中,应该标识自注册例程将编写的注册表项,并编写它们。当然,将这类建议应用到您的实际场景中可能会很棘手。感谢您提供的全面且非常出色的解释。这帮了大忙。