Wix:如何警告用户而不是使用属性终止安装?

Far*_*eed 6 warnings wix

我正在x64机器上搜索Microsoft Access数据库引擎的注册表项.这是我的代码:

  <Property Id="MS_ADE_X64">
    <RegistrySearch Id="MSADEX64_DIR" Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\InstallRoot"  Name="Path"  Type="directory" Win64="yes" >
      <DirectorySearch Id="MSADE_DIR" Path="[MSADEX64_DIR]" >
        <FileSearch Id ="ACECORE_DLL" Name ="ACECORE.DLL" />
      </DirectorySearch>
    </RegistrySearch>
  </Property>
  <Condition Message="This application requires Microsoft Access Database Engine (X64). Please install the Microsoft Access Database Engine (X64) then run this installer again.">
    <![CDATA[Installed OR MS_ADE_X64]]>
  </Condition>
Run Code Online (Sandbox Code Playgroud)

现在,用户将看到一条消息,安装将退出.

问题:如何阻止安装终止并向用户显示ha警告消息,安装是否会继续?

谢谢和最好的问候.

Dav*_*sen 7

我发现这样做的最好方法是创建一个带有警告消息的自定义对话框.我喜欢使用WixEdit来调整预先存在的对话框.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>

    <!-- QuickTime is not installed warning dialog -->
    <UI>
      <Dialog Id="QtWarningDlg" Width="284" Height="73" Title="QuickTime Note" NoMinimize="yes">
        <Control Id="Text" Type="Text" X="38" Y="8" Width="240" Height="40" TabSkip="no">
          <Text>QuickTime version 7.5.5 or higher is required for some components to function correctly. You may proceed with installation, but be sure to install QuickTime if you will be using any of those components.</Text>
        </Control>
        <Control Id="OK" Type="PushButton" X="114" Y="52" Width="56" Height="17" Default="yes"  Cancel="yes" Text="OK">
          <Publish Event="EndDialog" Value="Return">1</Publish>
        </Control>
      </Dialog>
    </UI>

    </Fragment>
</Wix>
Run Code Online (Sandbox Code Playgroud)

然后我们根据条件安排它

<InstallUISequence>
  <Custom Action="GetQuickTimeVersion" Before="QtWarningDlg"/>

  <!-- Warn if QuickTime is not installed -->
  <Show Dialog="QtWarningDlg" After="AppSearch">
    <![CDATA[NOT Installed AND ((QUICKTIME_VERSION = "") OR (QUICKTIME_VERSION < "#123043840"))]]>
  </Show>
</InstallUISequence>
Run Code Online (Sandbox Code Playgroud)