在WiX安装程序中无法显示对话框

Ser*_*gi0 4 installer wix firebreath

我正在修改默认的FireBreath WiX脚本,以在安装完成后显示简单消息。因为有时它是如此之快,所以用户没有机会注意到它。

我有这个wxs文件

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" ">
        <Package ... />
        <Upgrade Id="{369b048a-9f97-5e15-8ce3-c983fa5764d3}">
            <UpgradeVersion
                Property="OLD_VERSION_FOUND"
                Minimum="0.0.1" IncludeMinimum="yes"
                Maximum="0.3.3.3" IncludeMaximum="yes"
                OnlyDetect="no" IgnoreRemoveFailure="yes"
                MigrateFeatures="yes" />
        </Upgrade>
        <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable" />
        <InstallExecuteSequence>
            <RemoveExistingProducts After="InstallInitialize" />
            <InstallExecute After="RemoveExistingProducts" />
        </InstallExecuteSequence>        

        <Directory Id="TARGETDIR" Name="SourceDir">
            ...
        </Directory>

        <Feature Id="MainPluginFeature" Title="Plugin" Level="1">
            <ComponentRef Id="InstallDirComp"/>
            <ComponentRef Id="PluginNameDirComp"/>
            <ComponentRef Id="CompanyDirComp"/>
            <ComponentGroupRef Id="PluginDLLGroup"/>
        </Feature>

      <UI>
        <Property Id="DefaultUIFont">DlgFont10</Property>
        <TextStyle Id="DlgFont10" FaceName="Tahoma" Size="10" />

        <Dialog Id="CompleteDlg"
            Width="370"
            Height="270"
            Title="Plugin installed">

          <Control Id="Description"
               Type="Text"
               X="50"
               Y="70"
               Width="220"
               Height="80"
               Text="Installation complete, return to web browser." />

          <Control Id="Finish"
               Type="PushButton"
               X="180"
               Y="243"
               Width="56"
               Height="17"
               Default="yes"
               Cancel="yes"
               Text="OK">

            <Publish Event="EndDialog" Value="Exit" />
          </Control>
        </Dialog>

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

        <AdminUISequence>
          <Show Dialog="CompleteDlg" OnExit="success" />
        </AdminUISequence>
      </UI>
    </Product>
</Wix>
Run Code Online (Sandbox Code Playgroud)

但是在构建它时,出现以下错误消息:
错误2错误LGHT0204:ICE20:标准对话框:在对话框表中找不到'FilesInUse'
错误3错误LGHT0204:ICE20:ErrorDialog在属性表中未指定属性。确定ErrorDialog
Error 4错误LGHT0204 名称的必需属性:ICE20:在“ InstallUISequence”序列表中找不到FatalError对话框/操作。
错误5错误LGHT0204:ICE20:“ AdminUISequence”序列表中未找到FatalError对话框/操作。
错误6错误LGHT0204:ICE20:在“ InstallUISequence”序列表中找不到UserExit对话框/操作。
错误7错误LGHT0204:ICE20:在“ AdminUISequence”序列表中找不到UserExit对话框/操作。

我不需要任何其他对话框,仅此一个。如何解决这个问题?我可以忽略这些消息吗?

Bob*_*son 5

如果程序包具有任何对话框,则Windows Installer要求它具有最低设置以显示UI,主要是在错误情况下。该ICE20文档有完整列表。

  • 如果没有对话框,则MSI只会静默失败。我建议使用DialogRef从WixUIExtension提取ErrorDlg,因为它已经具有根据MSI要求构建的错误对话框&lt;http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa368546%28v = vs.85%29.aspx&gt;。 (3认同)