【发布时间】:2014-02-10 20:52:35
【问题描述】:
我有一个由 4 个不同的设置库组成的程序。我想做的是完全划分这些库,以便我可以轻松地重用它们或根据安装的内容限制程序的功能。目前,我的所有自定义操作都在安装程序本身内声明。我想让这些自定义操作驻留在它们各自的设置库中,并在 installexecutesequence 中指定它们。 WiX可以做到这一点吗?到目前为止,这是我尝试过的无济于事。
项目 A 安装库
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<?if $(var.Platform) = x86?>*See note
<CustomAction Id="MyCustomAction" FileKey="Somefile.exe" Execute="deferred" ExeCommand="CmdLineArgs" Return="check"/>
<InstallExecuteSequence>
<Custom Action="MyCustomAction" After="StartServices"/>
</InstallExecuteSequence>
<?endif ?>
</Fragment>
</Wix>
*我有这个条件来防止这个自定义操作在我的主项目中生成两次,因为我导入了这个设置库的 32 位和 64 位版本。
使用上述方法,我的项目编译得很好,但是编译时在 MSI 的自定义操作表中找不到自定义操作。如果我在安装程序中的 InstallExecuteSequence 中明确列出自定义操作,它可以工作,但是这违背了我将所有这些组件包装在它们自己的安装库中的最终目标。
【问题讨论】:
标签: wix installation custom-action