You need to enable JavaScript to run this app. 如何在Wix安装程序UI中设置用户可修改的属性以更改安装路径
优惠活动
大模型
产品
解决方案
定价
更多

如何在Wix安装程序UI中设置用户可修改的属性以更改安装路径

实现步骤

  • 给THISONE公共属性添加Secure标记,避免安装权限提升后用户输入的路径丢失
  • 引入WixUI扩展,自定义仅带路径输入框的极简对话框,将文本框值绑定到THISONE属性
  • 调整安装UI序列,跳过不需要的默认界面,仅保留自定义路径输入环节

完整修改后代码

<!-- 原有逻辑修改部分 -->
<Fragment>
  <!-- 新增Secure="yes",保证用户输入的属性值在安装提升阶段不会丢失 -->
  <Property Id="THISONE" Value="C:\MyFolder" Secure="yes"/>
  <Directory Id='TARGETDIR' Name='SourceDir'>
    <Directory Id='APPLICATIONFOLDER' ComponentGuidGenerationSeed="{75266e3e-3781-47e3-ac29-46a2d90548f9}">
      <Directory Id='MyFolder' Name='MyFolder'/>
    </Directory>
  </Directory>
  <SetDirectory Id='APPLICATIONFOLDER' Value='[THISONE]' />
</Fragment>
  
<Fragment>
  <Component Id="Component1" Directory="MyFolder" Win64="yes">
    <File Id="FirstFile.txt"/>
  </Component>
</Fragment>

<!-- 新增极简UI部分 -->
<Fragment>
  <UI Id="MinimalPathUI">
    <!-- 引用Wix内置的基础UI结构和进度页 -->
    <UIRef Id="WixUI_Common" />

    <!-- 自定义路径输入对话框 -->
    <Dialog Id="CustomPathDlg" Width="370" Height="270" Title="选择安装路径">
      <Control Id="PathLabel" Type="Text" X="20" Y="60" Width="330" Height="15" Text="请输入文件安装路径:" />
      <!-- 文本框绑定THISONE属性,用户输入会直接更新THISONE的值 -->
      <Control Id="PathEdit" Type="Edit" X="20" Y="80" Width="300" Height="18" Property="THISONE" />
      <Control Id="NextButton" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="下一步">
        <Publish Event="EndDialog" Value="Return">1</Publish>
      </Control>
      <Control Id="CancelButton" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="取消">
        <Publish Event="EndDialog" Value="Cancel">1</Publish>
      </Control>
    </Dialog>

    <!-- 配置UI序列,仅显示自定义路径输入框,之后直接进入安装流程 -->
    <InstallUISequence>
      <Show Dialog="CustomPathDlg" Before="ExecuteAction" />
    </InstallUISequence>
  </UI>
</Fragment>

<!-- 在你的Product节点内添加UI引用 -->
<Product ...>
  <!-- 其他Product配置 -->
  <UIRef Id="MinimalPathUI" />
</Product>

编译注意事项

编译时需要添加WixUIExtension引用,如果你用命令行编译,命令格式如下:

candle yourfile.wxs
light yourfile.wixobj -ext WixUIExtension

如果用Visual Studio的Wix Toolset项目,直接在项目的「引用」中添加WixUIExtension即可。

内容的提问来源于stack exchange,提问作者Lelouch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 10:09:02