Wix - 自定义安装目录

时间:2011-01-14 16:12:15

标签: .net wix installer windows-installer wix-gui

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

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

更新

当我添加

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>
<UIRef Id="WixUI_InstallDir" />

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

谢谢,菲利普

3 个答案:

答案 0 :(得分: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提供的标准对话框之一不是您想要的,您可以查看customising the dialog sequence。创建自己的自定义对话框通常是最后的选择。

答案 1 :(得分:0)

此链接以简单的方式解释了如何执行此操作。

link UIRef

答案 2 :(得分:0)

IsWiX支持此功能。看看:

IsWiXMerges.wxs

IsWiXInstaller.wxs

诀窍是我正在使用一个名为INSTALLLOCATION的目录以及一个UXef of WiXUI_ *。这就是WiXUI使用的方式类似于InstallShield使用INSTALLDIR和Visual Studio使用TARGETDIR的方式。

相关问题