使用 wix 的自定义对话框给出重复符号错误

Posted

技术标签:

【中文标题】使用 wix 的自定义对话框给出重复符号错误【英文标题】:Custom dialog box using wix giving duplicate symbol error 【发布时间】:2014-08-26 12:31:01 【问题描述】:

以下是我的代码:

  <UI>     
  <Dialog Id="ExitDialog" Width="370" Height="270" Title="Exit Dialog">
    <Control Id="Exit"
             Type="PushButton"
             X="236" Y="243" Width="56" Height="17"
             Default="yes"
             Cancel="yes"
             Text="Exit">
      <Publish Event="EndDialog" Value="Return">1</Publish>
    </Control>
  </Dialog>

  <TextStyle Id="DefaultFont" FaceName="Tahoma" Size="8" />
  <Property Id="DefaultUIFont" Value="DefaultFont" />

  <InstallUISequence>
    <Show Dialog="ExitDialog" OnExit="success" />
  </InstallUISequence>

  <AdminUISequence>
    <Show Dialog="ExitDialog" OnExit="success" />
  </AdminUISequence>
</UI>

我已收到http://blogs.technet.com/b/alexshev/archive/2008/10/16/from-msi-to-wix-part-20-user-interface-required-dialog-boxes.aspx的引用

我的代码出现以下错误: 找到重复的符号“对话框:退出对话框”。这通常意味着一个 Id 是重复的。检查以确保给定类型(文件、组件、功能)的所有标识符都是唯一的。请让我知道上面的代码有什么问题。

【问题讨论】:

【参考方案1】:

问题在于,编译器不仅会拉入您的自定义对话框,而且还会拉入原始对话框(来自项目引用),尽管实际上并未使用后者。所涉及的重复项是指在“UI”块之外声明的属性。只需注释掉您(自定义)副本中的那些,只要它们出现在 UI 块之前。

【讨论】:

【参考方案2】:

例如将“Id="ExitDialog"的ID改为Id="ExitDialog2"。

【讨论】:

以上是关于使用 wix 的自定义对话框给出重复符号错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在关闭对话框的 Wix 安装程序中停止自定义操作中的进度条

WiX - 如何在文件浏览对话框后刷新编辑控件

从对话框调用 CustomAction 时出现 WiX 安装错误 2762

使用 WIX 通过用户输入设置属性值

UI序列中的Wix进度条

在自定义对话框中自定义 Wix 安装程序中的图像