【问题标题】:WiX statement "CDATA[NOT Installed]" is not workingWiX 语句“CDATA [未安装]”不起作用
【发布时间】:2014-12-30 01:58:04
【问题描述】:

我正在尝试使 DemoDatabaseDlg 对话框成为有条件的,因此如果这是用户第一次安装安装程序,则应显示“DemoDatabaseDlg”。如果不是第一次安装,则跳过此对话框并跳转到下一个对话框。

  <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="DemoDatabaseDlg">1</Publish>

  <Publish Dialog="DemoDatabaseDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">
    <![CDATA[NOT Installed]]>
  </Publish>

  <Publish Dialog="DemoDatabaseDlg" Control="Next" Event="NewDialog" Value="PrepareDlg">1</Publish>
  <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>

但是,在第一次安装后,当我尝试增加版本号并再次重新安装时,我仍然可以看到 DemoDatabaseDlg 对话框。如何使用 CDATA 条件跳过此对话框?

【问题讨论】:

  • 您是否也在更改 ProductCode?​​span>
  • FWIW 没有“CDAATA 条件”之类的东西。 CDATA 只是转义继续进行的文本。在这种情况下甚至不需要它,因为条件表达式 NOT Installed 不包含任何需要转义的特殊字符。

标签: wix windows-installer wix3.7


【解决方案1】:

通常,您在 UI 序列中有一个欢迎对话框和一个维护对话框作为第一个对话框。如果没有看到其余代码或安装日志文件,很难确定,但我猜您正在进行重大升级并在每次构建时更改 ProductCode 属性。在这种情况下,从 MSI 的角度来看,尚未安装每个新版本。

【讨论】:

  • 我尝试查看日志文件,发现日志文件中有一个名为 AppSearch 的操作,即使我的机器上已经安装了以前的版本,它也会返回值 0 .你认为这是问题的根源吗?
  • 没有。发布第一次和第二次安装的日志。
  • AppSearch 与安装的旧产品无关。在新设置中查找 FindRelatedProducts 以查看它是否找到旧版本。
猜你喜欢
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多