我正在使用 Wix 3.5 构建 MSI 安装程序。我想知道是否有任何方法可以从“功能自定义设置对话框”(您从功能树中选择要安装的内容)中隐藏某些选项。
我只想选择“将安装在本地硬盘上”和“整个功能将不可用”
目前,除了这两个选项之外,我还有以下选项:
- “整个功能将安装在本地硬盘上”
- “将安装为从网络运行”
- “将安装整个功能以从网络运行”
我正在使用 Wix 3.5 构建 MSI 安装程序。我想知道是否有任何方法可以从“功能自定义设置对话框”(您从功能树中选择要安装的内容)中隐藏某些选项。
我只想选择“将安装在本地硬盘上”和“整个功能将不可用”
目前,除了这两个选项之外,我还有以下选项:
功能选择对话框使用Windows Installer 的内置控件SelectionTree控件。
您可以使用功能表Attributes
的列来控制为某个功能显示哪些安装选项。
WiX 的Feature 元素有四个属性来控制如何安装一个功能:
组件表还控制组件是否可以从源代码运行。Component 元素具有Location
以下属性:
因此,要删除从网络运行的选项,请将Location
组件的属性设置为local
.
您不能从选项中删除整个功能将安装在本地硬盘上。它仅在存在子功能并启用子功能以及功能本身的安装时才显示,而不是将安装在本地硬盘上,后者仅安装选定的功能并且不影响子功能。
如果子功能始终与父功能一起安装,您可以尝试将InstallDefault
子功能的属性设置为followParent
。
要删除在您的功能 AllowAdvertise="no" https://www.firegiant.com/wix/tutorial/user-interface/custom-settings/中设置的“此功能将在需要时安装”
如果您使用的是 WiX UIExtension,那么您需要下载该扩展的 WiX 源代码并进行适当的修改。以下链接应该可以帮助您入门:
更新:
在检查 WiX UI 源时,FeaturesDlg 显示一个“SelectionTree”控件。该控件(连同 WiX UI 显示的其他控件)似乎是 Windows Installer 控件,而不是特定于 WiX 的控件。请参阅选择树。因此,似乎没有简单的方法可以“关闭”这些选项。