我是Wix的新手,请原谅我使用不当的任何条款。
我有一个包含许多项目的大型解决方案,其中一些项目成为可安装的服务,可执行文件以及其他项目。在具有安装程序的项目的后期构建事件中,我运行以下命令以生成包含安装程序所需的所有文件的片段。
"C:\Program Files (x86)\WiX Toolset v3.8\bin\heat.exe" dir $(TargetDir) -ag -cg harvestedComponents -out $(TargetDir)$(ProjectName).wxs
我想创建一个单独的Wix安装项目,该项目有一个组件引用占位符,然后我可以链接到该片段。这样我就可以重用一个安装项目的功能,而不需要为我拥有的每个可安装项目安装项目。从那里我将有第二个构建事件,它将链接/编译片段和项目,同时将标志传递给通用安装程序项目,该项目可以打开/关闭安装功能,例如添加事件源,不同的自定义操作等。 / p>
所以我的问题是如何从可执行项目的后期构建事件中链接/编译片段与通用Wix项目。我猜这看起来像是:
Candle/Light.exe fragment.wxs generic.wxs -eventLog true -customAction1 true -msiName MyInstaller.msi
我会在通用文件中使用eventLog customAction1的值来启用/禁用安装功能。
对此感到困惑,希望这是可能的。
答案 0 :(得分:1)
如果我理解正确,你想在你的通用WiX源文件中引用由heat($(TargetDir)$(ProjectName).wxs
)创建的片段吗?
如果是这种情况,您只需在ComponentGroupRef
- 元素下方添加Feature
- 标记(而不是通常使用的ComponentRef
- 元素)。作为elemenet的Id
,您必须使用您在热量命令行中使用的ComponentGroup
的名称,在您的示例中为harvestedComponents
。 E.g。
<Feature Id="MyFeature" ...>
...
<ComponentRef Id="aNormalComponentFromTheCurrentFile" ... />
...
<ComponentGroupRef Id="harvestedComponents" />
</Feature>
还是我错过了这一点?