[译]:WiX Toolset入门——WixUI界面库参考
博客分类: 官方教程
返回目录索引
本文内容包含多个部分内容,内容如下。
原文链接:
本节介绍WiX Toolset中的WixUI对话框和对话框集合。
WixUI_Advanced Dialog Set
WixUI_Advanced界面库提供了提供了类似WixUI_Minimal的一键安装的选项,但是在用户选择高级选项配置时,还可以类似其他界面库一样进行目录和功能的选择。
界面库定义在WiX源代码的WixUIExtension部分的WixUI_Advanced.wxs文件中。
使用WixUI_Advanced
要使用WixUI_Advanced,你需要在你的代码文件中包含以下信息:
一个Id值为APPLICATIONFOLDER的目录配置。此目录会作为产品的默认安装路径。例如:
<Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder" Name="PFiles"> <Directory Id="APPLICATIONFOLDER" Name="My Application Folder"> ... </Directory> </Directory> </Directory>
一个Id值为ApplicationFolderName的属性配置,并设置一个表示默认文件夹名称的字符串。此属性用于生成默认安装位置。
针对机器的安装(即为所有用户安装),默认安装位置是[ProgramFilesFolder][ApplicationFolderName],同时用户可以在安装界面中修改安装路径。 针对每个用户的安装,默认安装路径将是[LocalAppDataFolder]Apps[ApplicationFolderName],并且用户是无法在安装界面修改安装路径的。示例如下:
<Property Id="ApplicationFolderName" Value="My Application Folder" />
一个Id值为WixAppFolder的属性配置,并将其value值设置为WixPerMachineFolder或WixPerUserFolder。此设置用于配置安装界面中默认选择的单选框——是为机器安装还是为用户安装。例如:
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
此处控制安装界面是否允许用户配置(选择每台机器还是每个用户)安装。要控制此,你需要用WiX变量设置将WixUISupportPerMachine或WixUISupportPerUser的值设置为0。他们的默认值为1,另外你不能在同一个.msi包中同时将两个值都设置为0。例如,要移除安装范围控制界面,并只支持针对每台机器的安装选项,可以进行如下设置:
<WixVariable Id="WixUISupportPerUser" Value="0" />
安装范围对话框会依据用户选择自动设置安装过程中的ALLUSERS属性。如果使用WiX变量控制了安装范围,你必须根据是否需要按计算机或用户安装,来手动控制ALLUSERS属性的值。
WixUI_Advanced对话框
WixUI_Advanced包含以下对话框(共有库为列出):
- AdvancedWelcomeEulaDlg
- BrowseDlg
- DiskCostDlg
- FeaturesDlg
- InstallDirDlg
- InstallScopeDlg
- InvalidDirDlg
WixUI_FeatureTree界面库
WixUI_FeatureTree是WixUI_Mondo的简化版本,它省略了类型设置对话框。取而代之的是,向导直接从许可协议界面跳转到功能定义对话框中。当你需要默认安装产品的所有功能时,WixUI_FeatureTree比WixUI_Mondo会更加适合。
界面库定义在WiX源代码的WixUIExtension部分的WixUI_FeatureTree.wxs文件中。
WixUI_FeatureTree对话框
WixUI_FeatureTree中包含以下对话框(共有库为列出):
- BrowseDlg
- CustomizeDlg
- DiskCostDlg
- LicenseAgreementDlg
- WelcomeDlg
WixUI_InstallDir界面库
WixUI_InstallDir不允许用户选择哪些功能安装,但是它添加了一个可供用户选择产品安装路径的对话框。
界面库定义在WiX源代码的WixUIExtension部分的WixUI_InstallDir.wxs文件中。
使用WixUI_InstallDir
要使用WixUI_InstallDir,你必须添加一个Id为WIXUI_INSTALLDIR的属性,以及一个目录配置用于用户指定安装目录。属性的Id必须为全部大写,因为它需要从UI传递到执行序列执行处理。示例如下:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="TESTFILEPRODUCTDIR" Name="Test File">
...
</Directory>
</Directory>
</Directory>
...
<Property Id="WIXUI_INSTALLDIR" Value="TESTFILEPRODUCTDIR" />
<UIRef Id="WixUI_InstallDir" />
WixUI_InstallDir 对话框
WixUI_InstallDir 中包含以下对话框(共有库为列出):
- BrowseDlg
- DiskCostDlg
- InstallDirDlg
- InvalidDirDlg
- LicenseAgreementDlg
- WelcomeDlg
WixUI_Minimal界面库
WixUI_Minimal是WixUI内置界面库中最简单的库。它仅有欢迎和使用协议界面,它省去了功能自定义对话框。WixUI_Minimal适用于没有可选功能和不支持安装目录设置的产品。
界面库定义在WiX源代码的WixUIExtension部分的WixUI_Minimal.wxs文件中。
WixUI_Minimal 对话框
WixUI_Minimal 中包含以下对话框(共有库为列出):
- WelcomeEulaDlg
WixUI_Mondo界面库
WixUI_Mondo包含一系列对话框,以此允许更细粒度的自定义安装选项。 WixUI_Mondo适合那些含有部分产品功能不默认安装 —— 典型安装与完整安装存在功能差异。
注意:当用户选择典型或完整安装时,WixUI_Mondo使用SetInstallLevel控件来控制安装级别。典型安装级别设置为3;完整级别设置为1000。关于更多功能级别和安装基本的内容见:INSTALLLEVEL Property。
界面库定义在WiX源代码的WixUIExtension部分的WixUI_Mondo.wxs文件中。
WixUI_Mondo 对话框
WixUI_Mondo 中包含以下对话框(共有库为列出):
- BrowseDlg
- CustomizeDlg
- DiskCostDlg
- LicenseAgreementDlg
- SetupTypeDlg
- WelcomeDlg
WixUI中的共有界面库——Common Dialog
此部分内容为上述界面库所共有的界面库内容。
- CancelDlg
- ErrorDlg
- ExitDlg
- FatalError
- FilesInUse
- MaintenanceTypeDlg
- MaintenanceWelcomeDlg
- MsiRMFilesInUse
- OutOfDiskDlg
- OutOfRbDiskDlg
- PrepareDlg
- ProgressDlg
- ResumeDlg
- UserExit
- VerifyReadyDlg
- WaitForCostingDlg
WixUI Dialogs
下表为WixUI界面库中每个内置对话框的描述:
对话框名称 | 描述 |
---|---|
AdvancedWelcomeEulaDlg | 为终端用户显示使用许可协议界面。与LicenseAgreementDlg不同的是,它含有Advanced和Install按钮,取代了Next和Back按钮。此对话框在WixUI_Advanced界面库中使用,为用户提供默认快速安装的方法。 |
BrowseDlg | 允许用户浏览目标文件夹的对话框 |
CancelDlg | 在任何对话框中点击取消按钮后显示的对话框。并用于用户确认是否确实取消安装。 |
CustomizeDlg | 显示功能选择的对话框,内容包括:一个浏览按钮,磁盘使用按钮,一个含有选中功能信息的文本框。 |
DiskCostDlg | 允许用户选择安装到哪个驱动器的对话框,同时还显示驱动器磁盘空间使用信息。 |
ErrorDlg | 错误信息提示框,同时提供重试操作功能。 |
ExitDlg | 安装成功后显示的摘要信息提示框。它还可以显示一个可选框和自定义文本。关于添加选择框和自定义文本的更多内容见:原文:Customizing Built-in WixUI Dialog Sets(译文:内置WixUI界面使用配置) 和 原文:How To: Run the Installed Application After Setup |
FatalError | 安装失败是的错误信息摘要提示框。 |
FeaturesDlg | 功能选择提示框,含有内容:一个功能选择树和一个显示当前选中功能描述信息的文本框。与CustomizeDlg不同的是,它不含有 Browse 和 Disk Space 按钮。 |
FilesInUse | 安装过程中文件占用提示框,内容包括:当前正在占用文件的应用列表,重试按钮、忽略按钮以及退出按钮。 |
InstallDirDlg | 安装路径选择对话框,包含内容:一个允许用户输入的路径文本框和一个用于选择安装路径的浏览按钮。默认情况下,InstallDirDlg对话框验证所有用户输入的路径——即,路径需要在本地硬盘上,不能是网络路径或可移除的驱动器上。如果你不需要验证,且允许非法路径,设置WIXUI_DONTVALIDATEPATH属性值为1。 |
InstallScopeDlg | 控制安装程序是为当前用户还是全部用户安装的对话框。 |
InvalidDirDlg | 用户选择非法安装目录时的错误提示框。 |
LicenseAgreementDlg | 终端用户使用协议对话框,并包含Back和Next按钮。不同于 AdvancedWelcomeEulaDlg,它没法允许用户执行默认安装。 |
MaintenanceTypeDlg | 功能修改、软件修复及移除功能对话框。此对话框只有已经安装过产品后才会出现。 |
MaintenanceWelcomeDlg | 在产品安装之后运行安装程序的介绍对话框。 |
MsiRMFilesInUse | 与FileInUse对话框类似,但他可以与重启管理器交互。即,它允许用户尝试自动关闭应用或忽略提示以此在安装完成后要求重新启动。 |
OutOfDiskDlg | 用于通知用户所选磁盘已满,并建议其选择空余空间较大的磁盘或减少要安装到驱动器的功能。 |
OutOfRbDiskDlg | 类似OutOfDiskDlg对话框,但它还允许用户禁用Windows Installer的回滚功能,以此节省安装所需的磁盘空间。 |
PrepareDlg | 安装程序初始化时显示的进度对话框——用于在第一个交互界面显示前显示。 |
ProgressDlg | 安装过程中的进度提示框——显示内容包括:一个进度条和正在处理的操作提示信息。 |
ResumeDlg | 恢复挂起安装的提示信息对话框。 |
SetupTypeDlg | 允许用户选择典型、自定义或完整安装配置的对话框。 |
UserExit | 类似FatalError对话框。当用户选择取消安装时,显示的提示信息对话框。 |
VerifyReadyDlg | 开始安装之前的对话框。用于在开始更改系统之前向用户确认。 |
WaitForCostingDlg | 在Windows Installer完成磁盘要求检测之前,进行操作的提示框 —— 即需要等待磁盘要求检查完成。 |
WelcomeDlg | 在产品未安装的情况下,运行安装程序显示的介绍提示框。 |
WelcomeEulaDlg | 显示最终用户使用许可协议并在用户接受协议后进行安装。此对话框用于WixUI_Minimal界面库和用于不提供用户任何可配置选项的简单安装程序。 |
译:奇葩史