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

7

我正在修改默认的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>

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

我只需要这一个对话框。如何解决?我可以忽略这些消息吗?

1个回答

6
如果一个程序包有任何对话框,Windows Installer要求它至少显示一组最小的UI,主要是在错误条件下。完整列表请参见ICE20文档

忽略这些错误是否安全?因为它仍然会创建一个MSI文件。我不知道在这些对话框中显示什么,有没有一种方法可以获取发生的错误以用于错误对话框? - Sergi0
3
如果没有对话框,MSI 将会默默失败。我建议使用 DialogRef 从 WixUIExtension 拉取 ErrorDlg,因为它已经将错误对话框构建到了 MSI 要求中。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa368546%28v=vs.85%29.aspx。 - Bob Arnson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接