我的任务是构建两个安装程序基于相同的wixlib由第三方提供。完整的安装程序包括所有的组件,只有核心的东西。我假设wixlib有以下结构:
<Fragment>
<ComponentGroup Id="CoreStuff">
<!-- List of components for this bit, roughly 5MB -->
</ComponentGroup>
</Fragment>
<Fragment>
<ComponentGroup Id="ExtraStuff">
<!-- List of components for this bit, roughly 45MB -->
<ComponentRef Id="BigFile1"/>
</ComponentGroup>
<Component Id="BigFile1">
<File Id="BigFile1_bin" Name="BigFile1.bin"/>
</Component>
</Fragment>安装程序是在msbuild中生成的。这些组件包括在项目中的方式如下:
<Feature Id="ThirdPartyStuff">
<ComponentGroupRef Id="CoreStuff"/>
<?if $(var.Configuration) = "Full"?>
<ComponentGroupRef Id="ExtraStuff"/>
<?endif?>
</Feature>最后,正如预期的那样,我得到了LGHT0267错误:
错误LGHT0267:找到孤立的组件‘BigFile1 1’。如果这是一个产品,每个组件必须至少有一个父功能。若要在模块中包含组件,必须将其直接包含为模块元素的组件元素,或通过ComponentRef、ComponentGroup或ComponentGroupRef元素间接包含组件。
有没有人想过如何有选择地使用wixlib中提供的组件?我可以为用户提供ExtraStuff作为单独的特性,但是这里的目标是缩小安装程序。我可以礼貌地请求ThirdParty提供两个单独的wixlib,但我想避免它。
发布于 2015-04-15 09:00:09
经过一番努力,我终于找到了解决办法,令人讨厌的解决办法:
发布于 2015-04-08 17:43:57
我不认为wix能够只使用wixlib包的一部分。将wixlib看作合并模块(没有可查看的表)。您不能只使用合并模块的一半,也不能只使用wixlib的一半。
恐怕你得要求第三方把他们的wixlib分解成两个包。
https://stackoverflow.com/questions/29510444
复制相似问题