每个用户设置:我不会骗你,我会积极避免这种设置。我发现 MSI 的每用户安装结构“不理想”。它与较差的可维护性(升级、修补等)和许多其他细节有关。页面中间的一些细节在这里。
阅读此答案的其他人的一些链接(我认为您已阅读这些):
特征条件:话虽如此,您可以使用特征条件根据某个条件是真还是假来取消选择特征。您甚至可以设置在安装期间将其完全从 GUI 中隐藏Level
的功能0
你可以试试这个。另请阅读下面的链接答案(粗体)。它包含对特征条件的更好解释。
我没有时间对此进行测试,但是您可以尝试以下 WiX 模型:
<Feature Id="MyFeature" Level="1"> <!--Default to install feature-->
<Condition Level="0"> <!--Do not install feature if condition is true-->
ALLUSERS=2 OR MSIINSTALLPERUSER=1
</Condition>
</Feature>
这些答案可能会帮助您对此有所了解:
隐藏功能测试:我将添加一个小片段,您可以使用它来验证功能隐藏的操作。它通过将其设置为 1 来强制相关条件为真 - 而不是使用可能意外为假的“真实条件”。
<Feature Id="SupportingFiles" Title="SupportingFiles" Level="1">
<Condition Level="0">1</Condition>
</Feature>
这应该在设置 GUI 中隐藏SupportingFiles 功能,并且它也不应该安装它。如果您看到不同的行为,请告诉我。
自定义操作:要基于 GUI 中所做的更改以交互方式隐藏功能,您可以尝试使用自定义操作来控制功能级别。
我不确定这会奏效。当我有机会时,我会测试。现在只需添加该链接。
更新:我现在无法对此进行调查。我想提醒您在安装期间向数据库添加临时行的可能性。也许这是“交互式”隐藏功能的方法。我只是不知道,因为我从未尝试过。这是我在临时记录中找到的第一个链接。底部是链接。没有保证。
除此之外,我想您可以使用外部 GUI 启动器。我稍后可能会对此发表评论。我最近写了关于这个问题(外部 GUI)。
一些进一步的参考链接: