我正在使用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" />
时,我可以构建设置。但是不再显示“选择安装类型”(完整,典型,自定义)对话框。还有一个奇怪的事情:有时弹出一个对话框,说明它计算磁盘空间(它有一个取消按钮),但最终它永远不会自动关闭。当我关闭它时,我仍然可以继续。有没有办法以简单的方式解决这个问题?
谢谢,菲利普
答案 0 :(得分:9)
UIRef元素是指WiX提供的标准用户界面序列之一:
您只能在安装程序中使用其中一个序列。其中每一个都有一组对话框。有关每个序列中包含哪些对话框的信息,WiX wiki有一个很好的概述。
WixUI_Mondo允许用户在选择自定义安装时指定安装目录。只有WixUI_Mondo允许用户选择典型的,自定义的或完整的安装。
允许用户选择安装目录的最简单方法是使用WixUI_InstallDir对话框序列。
SharpDevelop自己的安装程序使用WixUI_FeatureTree对话框序列。
因此,如果WiX提供的标准对话框之一不是您想要的,您可以查看customising the dialog sequence。创建自己的自定义对话框通常是最后的选择。
答案 1 :(得分:0)
此链接以简单的方式解释了如何执行此操作。
答案 2 :(得分:0)
IsWiX支持此功能。看看:
诀窍是我正在使用一个名为INSTALLLOCATION的目录以及一个UXef of WiXUI_ *。这就是WiXUI使用的方式类似于InstallShield使用INSTALLDIR和Visual Studio使用TARGETDIR的方式。