我使用 WiX 创建了一个安装程序来安装 VSIX 以及两个相关组件。这两个组件以合并模块的形式提供给我。下面是我在代码中使用合并模块的代码:
<DirectoryRef Id="TARGETDIR">
<Merge Id="MergeModuleID1" SourceFile="MergeModule1.msm" DiskId="1" Language="0"/>
<Merge Id="MergeModuleID2" SourceFile="MergeModule2.msm" DiskId="1" Language="0" />
</DirectoryRef>
我将这些合并模块称为:
<Feature Id="ProductFeature" Title="Title" Level="1">
<ComponentRef Id="VSPackage"/>
<ComponentRef Id="ApplicationShortcut"/>
<ComponentRef Id="DesktopShortcut"/>
<ComponentRef Id="LicenseComp"/>
<MergeRef Id="MergeModuleID1"/>
<MergeRef Id="MergeModuleID2"/>
</Feature>
我面临的问题是,我的 VSIX 已安装到机器上的所有用户帐户,但这些合并模块不是,它们仅安装在安装产品的用户帐户上。在其他用户帐户上,会出现一个安装对话框,我相信它正在安装这些合并模块,之后一切正常。如何使这些合并模块安装到所有用户?
PS:MSI 和合并模块中的 ALLUSERS 属性都设置为“1”。