我正在使用WIX创建Windows Installer MSI。我想将文件分成不同的片段,在每个wxs文件中都有一小块代码。
目前我有以下文件: - Product.wxs ,其中包含Product,Package,MediaTemplate和Feature元素。 - Directories.wxs ,其中包含文件夹结构和组件,可在卸载时为用户授予权限并删除文件夹。
我也希望从 Product.wxs 中获取所有功能,并创建自己的文件,名为 Features.wxs 。
在 Directories.wxs 中,我有以下代码行:
<Component Id="Component1" Guid="PUT_GUID_HERE" Directory="Subfolder">
<CreateFolder>
<util:PermissionEx GenericAll="yes" ChangePermission="yes" Delete="yes" DeleteChild="yes" User="Users"/>
</CreateFolder>
</Component>
有了上面的代码,因为我在Feature元素中引用了这个Component,所以我确定我的 Product.wxs 和目录是相互关联的。
但是当我创建 Feature.wxs 文件并将代码行移到它下面时:
<Feature Id="CreateDirectoriesFeature" Title="Feature1" Level="1">
<ComponentRef Id="Component1"/>
</Feature>
我不知道在 Product.wxs 中如何/在何处引用此片段/功能。
答案 0 :(得分:1)
使用FeatureRef元素创建一个FeatureGroup,然后在Product.wxs中使用FeatureGroupRef进入范围。
答案 1 :(得分:0)
我也将我的功能内容放在不同的文件中,我唯一需要引用它们的是功能ID。
这是一个代码示例。这是我拥有的整个功能文件:
const
以下是我在 Product.wxs 中引用它的方法。我将向您展示从 MajorUpgrade 元素到其最终结果的整个文件:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<Feature Id="Feature_Name"
Level="1">
<ComponentRef Id="Component_Name"/>
</Feature>
</Fragment>
</Wix>
就是这样。也许你没有使用 FeatureRef ?