组件之间的自定义操作
Custom Action between components
如何确保在安装两个组件之间触发自定义操作?
例如我有一些 Wix 定义如下:
<Feature Id="ProductFeature" Title="My Installer" Level="1">
<ComponentGroupRef Id="DatabaseSetup" />
<ComponentGroupRef Id="DatabaseCleanup" />
</Feature>
<InstallExecuteSequence>
<Custom Action="RunDatabaseMigration" Before="InstallFinalize"></Custom>
</InstallExecuteSequence>
有没有办法确保自定义操作 RunDatabaseMigration
在 DatabaseSetup
和 DatabaseCleanup
之间正确运行?
我期待这样的结果,但显然我只能为 Before 和 After 属性使用标准或自定义操作的名称,此解决方案不适用于组件。
<Custom Action="RunDatabaseMigration" After="DatabaseSetup"></Custom>
How to make sure a custom action to be triggered between installation
of two components?
通常不可能在两个组件之间安排自定义操作。正如您自己已经发现的那样,Before
和 After
属性必须命名标准或自定义操作。
Windows 安装程序不会一个接一个地安装组件。组件只是安装项的逻辑组,例如。 G。注册表项、文件等,但它们不定义安装顺序。相反,Windows 安装程序将不同类型的资源(如注册表项和文件)分组,并按照 InstallExecuteSequence
table 定义的顺序安装这些组。例如,在某一时刻将安装所有文件(InstallFiles
操作),稍后将写入所有注册表项(WriteRegistryValues
)。看看 suggested InstallExecuteSequence
以获得更好的想法。
也就是说,如果 DatabaseSetup
只安装一种资源(例如文件)而 DatabaseCleanup
安装另一种资源(例如注册表项),您可以在两者之间安排自定义操作关联的标准操作(在本例中为 InstallFiles
和 WriteRegistryValues
)。但是,如果两个组件安装相同类型的资源或混合资源,则无法使用该解决方法。在这种情况下,您必须将其中一个组件转换为您可以随时安排的自定义操作。
如何确保在安装两个组件之间触发自定义操作?
例如我有一些 Wix 定义如下:
<Feature Id="ProductFeature" Title="My Installer" Level="1">
<ComponentGroupRef Id="DatabaseSetup" />
<ComponentGroupRef Id="DatabaseCleanup" />
</Feature>
<InstallExecuteSequence>
<Custom Action="RunDatabaseMigration" Before="InstallFinalize"></Custom>
</InstallExecuteSequence>
有没有办法确保自定义操作 RunDatabaseMigration
在 DatabaseSetup
和 DatabaseCleanup
之间正确运行?
我期待这样的结果,但显然我只能为 Before 和 After 属性使用标准或自定义操作的名称,此解决方案不适用于组件。
<Custom Action="RunDatabaseMigration" After="DatabaseSetup"></Custom>
How to make sure a custom action to be triggered between installation of two components?
通常不可能在两个组件之间安排自定义操作。正如您自己已经发现的那样,Before
和 After
属性必须命名标准或自定义操作。
Windows 安装程序不会一个接一个地安装组件。组件只是安装项的逻辑组,例如。 G。注册表项、文件等,但它们不定义安装顺序。相反,Windows 安装程序将不同类型的资源(如注册表项和文件)分组,并按照 InstallExecuteSequence
table 定义的顺序安装这些组。例如,在某一时刻将安装所有文件(InstallFiles
操作),稍后将写入所有注册表项(WriteRegistryValues
)。看看 suggested InstallExecuteSequence
以获得更好的想法。
也就是说,如果 DatabaseSetup
只安装一种资源(例如文件)而 DatabaseCleanup
安装另一种资源(例如注册表项),您可以在两者之间安排自定义操作关联的标准操作(在本例中为 InstallFiles
和 WriteRegistryValues
)。但是,如果两个组件安装相同类型的资源或混合资源,则无法使用该解决方法。在这种情况下,您必须将其中一个组件转换为您可以随时安排的自定义操作。