6

I'm modifying default FireBreath WiX script to show simple message after installation is complete. Because sometimes it is so quick, user doesn't get a chance to notice it.

I have this wxs file

<?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>

but when I build it, I get these error messages
Error 2 error LGHT0204 : ICE20: Standard Dialog: 'FilesInUse' not found in Dialog table
Error 3 error LGHT0204 : ICE20: ErrorDialog Property not specified in Property table. Required property for determining the name of your ErrorDialog
Error 4 error LGHT0204 : ICE20: FatalError dialog/action not found in 'InstallUISequence' Sequence Table.
Error 5 error LGHT0204 : ICE20: FatalError dialog/action not found in 'AdminUISequence' Sequence Table.
Error 6 error LGHT0204 : ICE20: UserExit dialog/action not found in 'InstallUISequence' Sequence Table.
Error 7 error LGHT0204 : ICE20: UserExit dialog/action not found in 'AdminUISequence' Sequence Table.

I don't need any other dialogs, only this one. How to fix this? Can I just ignore these messages?

Sergi0
  • 1,084
  • 14
  • 28

1 Answers1

6

If a package has any dialogs, Windows Installer requires that it have a minimum set to show UI, mostly under error conditions. The ICE20 documentation has the full list.

Bob Arnson
  • 21,377
  • 2
  • 40
  • 47
  • is it safe to ignore those errors? cause it still creates an msi file. i just don't know what to show in those dialogs, is there a way to get what error occurred for the error dialog? – Sergi0 May 31 '13 at 22:09
  • 3
    If you don't have the dialogs, MSI will just silently fail. I'd recommend using DialogRef to pull in the ErrorDlg from WixUIExtension, since it already has the error dialog built to the MSI requirements . – Bob Arnson Jun 01 '13 at 20:39