如何在wix安装程序中重用功能

时间:2016-05-17 06:01:50

标签: wix installer

我是WIX的新手。我已经创建了一个安装程序来在IIS上创建网站。我需要在另外两个wix项目中使用这个网站安装程序。例如,在另一个项目中,我正在创建窗口服务,并希望在同一个项目和另一个项目中创建网站,我想创建数据库和本网站。

1 个答案:

答案 0 :(得分:1)

您可以将共享功能放在wixlib项目中。

您基本上将共享功能放入< Fragment>标签并使用<元素参考>标记以在主wix项目中包含片段。

你可能已经使用了WixUIExtension,看起来它基本上只是ui.wixlib的包装器。当你执行&lt; UIRef Id =“WixUI_InstallDir&gt;然后在WixUI_Installdir.wxs的片段中的所有内容在编译时合并到你的主wix项目中时,你合并了部分ui wixlib。(我认为预处理器会这样做)< / p>

因此,如果您可以识别多个安装程序之间共享的安装程序部分,则可以创建包含多个InstallComponent.wxs的wix库以及将它们引用到主安装中的方法。通常这可以使用UIRef,RegistrySearchRef,或者在没有可用的真实Ref元素的情况下,只需在Fragment顶部包含一个描述属性,如

<Property Id="ComponentNameInclude" />

然后在您的安装程序项目中,您可以引用此属性以引入此属性所属的片段中的所有内容。

<PropertyRef Id="ComponentNameInclude" />

我建议阅读wix源代码(我将github链接到其中一个文件)以更好地了解wix本身如何使用某些wixlibs。