【问题标题】:Wix - Custom installation directoryWix - 自定义安装目录
【发布时间】:2011-01-14 16:12:14
【问题描述】:

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

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

更新:

当我添加时

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

&lt;UIRef Id="WixUI_Mondo" /&gt; 之后但在&lt;/Product&gt; 之前出现以下错误:

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

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

谢谢,菲利普

【问题讨论】:

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


    【解决方案1】:

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

    • WixUI_Mondo
    • WixUI_Advanced
    • WixUI_FeatureTree
    • WixUI_InstallDir
    • WixUI_Minimal

    您只能在安装程序中使用这些序列之一。其中每一个都有一组对话框。有关每个序列中包含哪些对话框的信息,请参阅WiX documentation

    如果用户选择自定义安装,WixUI_Mondo 允许用户指定安装目录。只有 WixUI_Mondo 允许用户选择典型、自定义或完整安装。

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

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

    因此,如果 WiX 提供的一组标准对话框不是您想要的,您可以查看customising the dialog sequence。创建自己的自定义对话框通常是最后的手段。

    【讨论】:

      【解决方案2】:

      IsWiX 支持此功能。看看:

      IsWiXMerges.wxs

      IsWiXInstaller.wxs

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多