Wix - 自定义安装目录

Phi*_*lip 6 .net installer windows-installer wix wix-gui

我正在使用Wix 3.x,用户应该能够选择目标目录.我的Setup.wxs目前在这里:http://pastebin.com/uH1EjbDQ

询问用户自定义目标目录的最简单方法是什么?(INSTALLDIR/TARGETDIR ?!)我看过人们建立自己的对话框页面的例子,但这不是必需的,是吗?

更新:

当我添加

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>
<UIRef Id="WixUI_InstallDir" />
Run Code Online (Sandbox Code Playgroud)

之后<UIRef Id="WixUI_Mondo" />但在</Product>我收到以下错误之前:

The primary key 'ExitDialog/Finish/EndDialog/Return/1' is duplicated in table 'ControlEvent'. Please remove one of the entries or rename a part of the primary key to avoid the collision. (LGHT0130) - C:\delivery\Dev\wix30_public\src\ext\UIExtension\wixlib\WixUI_Mondo.wxs:44

现在,当我删除时,<UIRef Id="WixUI_Mondo" />我可以构建设置.但是不再显示"选择安装类型"(完整,典型,自定义)对话框.还有一个奇怪的事情:有时弹出一个对话框,说明它计算磁盘空间(它有一个取消按钮),但最终它永远不会自动关闭.当我关闭它时,我仍然可以继续.有没有办法以简单的方式解决这个问题?

谢谢,菲利普

Mat*_*ard 9

UIRef元素是指WiX提供的标准用户界面序列之一:

  • WixUI_Mondo
  • WixUI_Advanced
  • WixUI_FeatureTree
  • WixUI_InstallDir
  • WixUI_Minimal

您只能在安装程序中使用其中一个序列.其中每一个都有一组对话框.有关每个序列中包含哪些对话框的信息,WiX wiki具有良好的概述.

WixUI_Mondo允许用户在选择自定义安装时指定安装目录.只有WixUI_Mondo允许用户选择典型的,自定义的或完整的安装.

允许用户选择安装目录的最简单方法是使用WixUI_InstallDir对话框序列.

SharpDevelop自己的安装程序使用WixUI_FeatureTree对话框序列.

因此,如果WiX提供的标准对话框之一不是您想要的,您可以查看自定义对话框序列.创建自己的自定义对话框通常是最后的选择.