【问题标题】:Checkboxes not working in WiX generated windows installer复选框在 WiX 生成的 Windows 安装程序中不起作用
【发布时间】:2015-02-25 10:04:25
【问题描述】:

我已将 WiXEdit 与 Wix 结合使用,对 MSI 安装进行逆向工程,以便将我的主要解决方案从 VS2010 升级到 VS2013。

我得到的错误是,当 MSI 运行时,我放置在对话框中的复选框和文本框就像它们被禁用一样。我需要这些复选框,就像我的主应用程序,它们允许用户选择功能集。

我生成了一个simple solution,它演示了同样的错误。 该解决方案有 2(3) 个项目,将始终安装 windowsformsapplication12,仅当条件 CHECKBOX1A=1 时才会安装 windowsformsapplication1(SetupProject2 是 wix 项目,wix 脚本在此处找到为 setup1.wxs)

(如果需要,必须将 Wix 工具包安装到 Visual Studio 中以编译 Wix 设置项目,但如果具有安装专业知识的人检查脚本 setup1.wxs,他们可能会发现它有什么问题。)

注意 在尝试编译逆向工程文件时,我收到错误消息“错误 5 控件元素必须具有恰好是 Property 或 CheckBoxPropertyRef 属性之一的值。”在第 491,492,493,494 行。因此,我将 Property="CHECKBOXA1" (或根据需要)添加到控件描述符 xml 的末尾,如果您解压缩源代码可以看到。 我想我错过了在其他地方添加额外的代码,或者我认为它会起作用。

这是我第一次遇到 Wix 脚本,而且源代码与我看到的 Wix 教程代码不太相似,所以我无法调试它。

【问题讨论】:

    标签: wix setup-project


    【解决方案1】:

    将 VS2010 安装项目转换为 Wix 脚本

    请为其他认为有用的人查找说明

    1) 安装 WixToolkit 和 WixEdit

    2) 构建VS2010安装工程

    3) 在解决方案中创建新的 Wix 项目。

    4) 从 Wix 项目中删除默认的 product.wxs 文件

    5) 将安装MSI文件复制到Wix项目的根目录

    6) 运行 WixEdit 应用程序

    7) 在 WixEdit 中打开设置 MSI 文件

    (这应该会生成文件和目录)

    7) 将WixEdit生成的目录和文件添加到Wix项目中

    8) 编译 Wix 安装项目并修复错误

    9) 从wix项目中删除原来的msi文件

    重新复选框不起作用

    “错误 5 Control 元素必须具有恰好是 Property 或 CheckBoxPropertyRef 属性之一的值”

    转到脚本中的错误行

    <Control Id="Checkbox1" Type="CheckBox" X="18" Y="108" Width="348" Height="12" Text="{\VSI_MS_Shell_Dlg13.0_0_0}Install Main Application" TabSkip="no"/>
    

    更改它以使其读取(或适当的更改)

    <Control Id="Checkbox1" Type="CheckBox" X="18" Y="108" Width="348" Height="12" Text="{\VSI_MS_Shell_Dlg13.0_0_0}Install Main Application" TabSkip="no" Property="CHECKBOXA1" CheckBoxValue="1" />
    

    CheckBoxValue="1" 是导致我的复选框被禁用的缺失属性

    【讨论】:

      猜你喜欢
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      相关资源
      最近更新 更多