Good afternoon,
 
I've got a series of custom actions that can each present reason for a failed 
installation. I am currently getting "the installation completed/failed 
prematurely" or what it says when something fails. I like that screen, but I 
would like to show my own text for why it failed: SQL Server was down, database 
was missing, database access denied, and so forth. I am not sure which WXS-file 
is the relevant here. This is the customized user interface based on Mondo 
(don't know if it's so customized):
 
<?xml version="1.0" encoding="UTF-8"?>
<!--
 <copyright file="WixUI_Mondo.wxs" company="Outercurve Foundation">
   Copyright (c) 2004, Outercurve Foundation.
   This software is released under Microsoft Reciprocal License (MS-RL).
   The license and further copyright text can be found in the file
   LICENSE.TXT at the root directory of the distribution.
 </copyright>
-->
<!--
First-time install dialog sequence:
- WixUI_WelcomeDlg
- WixUI_LicenseAgreementDlg
- WixUI_SetupTypeDlg
- WixUI_VerifyReadyDlg
- WixUI_CustomizeDlg
- WixUI_DiskCostDlg
- WixUI_BrowseDlg
Maintenance dialog sequence:
- WixUI_MaintenanceWelcomeDlg
- WixUI_MaintenanceTypeDlg
- WixUI_CustomizeDlg
- WixUI_VerifyReadyDlg
Patch dialog sequence:
- WixUI_WelcomeDlg
- WixUI_VerifyReadyDlg
-->
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
  <Fragment>
    <UI Id="WixUI_MYAPP">
      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
      <Property Id="WixUI_Mode" Value="Mondo" />
      <DialogRef Id="ErrorDlg" />
      <DialogRef Id="FatalError" />
      <DialogRef Id="FilesInUse" />
      <DialogRef Id="MsiRMFilesInUse" />
      <DialogRef Id="PrepareDlg" />
      <DialogRef Id="ProgressDlg" />
      <DialogRef Id="ResumeDlg" />
      <DialogRef Id="UserExit" />
      <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" 
Value="Return" Order="999">1</Publish>
      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" 
Value="LicenseAgreementDlg">NOT Installed AND NOT PATCH</Publish>
      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" 
Value="VerifyReadyDlg">Installed AND PATCH</Publish>
      <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" 
Value="WelcomeDlg">1</Publish>
      <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" 
Value="VerifyReadyDlg" Order="2">LicenseAccepted = "1"</Publish>
      <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" 
Value="LicenseAgreementDlg">1</Publish>
      <Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog" 
Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="SetupTypeDlg" Control="CustomButton" Event="NewDialog" 
Value="CustomizeDlg">1</Publish>
      <Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog" 
Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" 
Value="MaintenanceTypeDlg" Order="1">WixUI_InstallMode = "Change"</Publish>
      <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" 
Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallCustom"</Publish>
      <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" 
Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" 
Value="CustomizeDlg" Order="1">WixUI_InstallMode = "InstallCustom"</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" 
Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallTypical" OR 
WixUI_InstallMode = "InstallComplete"</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" 
Value="CustomizeDlg" Order="3">WixUI_InstallMode = "Change"</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" 
Value="MaintenanceTypeDlg" Order="4">WixUI_InstallMode = "Repair" OR 
WixUI_InstallMode = "Remove"</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" 
Value="WelcomeDlg" Order="2">WixUI_InstallMode = "Update"</Publish>
      <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" 
Value="MaintenanceTypeDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" 
Event="NewDialog" Value="CustomizeDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" 
Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" 
Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" 
Value="MaintenanceWelcomeDlg">1</Publish>
    </UI>
    <UIRef Id="WixUI_Common" />
  </Fragment>
</Wix>
 
And this would be the slightly meatier Product.wxs:
 
<?xml version="1.0" encoding="UTF-8"?>
<?include Definitions/Product.wxi ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"; 
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension";>
  <Product Id="*" Name="MyAppName" Language="1033" 
Version="$(var.ProductVersion)" Manufacturer="RemovedCompanyName" 
UpgradeCode="17652B67-2C4F-4752-88CE-0E300DEA4C2F">
    <Package 
      InstallerVersion="200" 
      Compressed="yes" 
      InstallScope="perMachine" 
      InstallPrivileges="elevated"
      Manufacturer="RemovedCompanyName" 
      Platform="x86"
       />
    
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is 
already installed."/>
    
    <!-- BEGIN: License Agreement -->
    <WixVariable Id="WixUILicenseRtf" 
Value="SetupResources/LicenseAgreement.rtf" />
    
    <!-- BEGIN: UI Bitmaps -->
    <WixVariable Id="WixUIBannerBmp" 
Value="SetupResources/WiXDefBannerBitmap.bmp" />
    <WixVariable Id="WixUIDialogBmp" 
Value="SetupResources/WiXDefDialogBitmap.bmp" />
    <!-- BEGIN: Custom Actions -->
    <CustomAction Id='validateSqlServer' BinaryKey='customActions' 
DllEntry='ValidateSqlServer' />
    <CustomAction Id='validateTpdb' BinaryKey='customActions' 
DllEntry='ValidateTpdb' />
    <CustomAction Id='validateProductDb' BinaryKey='customActions' 
DllEntry='ValidateProductDb' />
    <CustomAction Id='tryUpdateTpdb' BinaryKey='customActions' 
DllEntry='TryUpdateTpdb' />
    <CustomAction Id='hasLegacyProduct' BinaryKey='customActions' 
DllEntry='HasLegacyProduct' />
    
    <Binary Id='customPaActions' 
SourceFile='D:\TFS\MyAppName\Main\Src\MyAppName\WiX Custom 
Actions\CustomActions.CA.dll' />
        
    <!-- BEGIN: Single MSI -->
    <MediaTemplate EmbedCab="yes" />
    <!-- BEGIN: Application Icon -->
    <Icon Id="appicon.ico" SourceFile="SetupResources/appicon.ico"/>
    <!-- BEGIN: .NET Version Launch Condition -->
    <PropertyRef Id="NETFRAMEWORK45" />
    <Condition Message="You must install Microsoft .NET 4.5">
      <![CDATA[Installed OR NETFRAMEWORK45]]>
    </Condition>
    <InstallExecuteSequence>
      <Custom Action="hasLegacyProduct" Before="validateSqlServer">NOT 
Installed</Custom>
      <Custom Action="validateSqlServer" Before="validateProductDb">NOT 
Installed</Custom>
      <Custom Action="validateProductDb" Before="validateTpdb">NOT 
Installed</Custom>
      <Custom Action="validateTpdb" Before="tryUpdateTpdb">NOT 
Installed</Custom>
      <Custom Action="tryUpdateTpdb" Before="InstallFinalize">NOT 
Installed</Custom>
    </InstallExecuteSequence>

    <!-- BEGIN: File System -->
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="CompanyFolder" Name="RemovedCompanyName">
          <Directory Id="INSTALLDIRECTORY" Name="MyAppName 
$(var.ProductVersion)">
            <Directory Id="Cache" Name="Cache">
              <Directory Id="Images" Name="Images">
              </Directory>
            </Directory>
            <Directory Id="Help" Name="Help"/>
          </Directory>
        </Directory>
      </Directory>
      <Directory Id="DesktopFolder" Name="Desktop"></Directory>
      <Directory Id="StartMenuFolder" Name="StartMenu"></Directory>
      <Directory Id="StartupFolder" Name="StartUp"></Directory>
      <Directory Id='AppDataFolder' Name='Roaming'>
        <Directory Id="RemovedCompanyNameFolder" Name="RemovedCompanyName">
          <Directory Id='MyAppFolder' Name='MyAppName'>
            <Directory Id='SettingsFolder' Name='Settings'/>
            <Directory Id='ErrorFolder' Name='Error'/>
            <Directory Id='CacheFolder' Name='Cache'/>
            <Directory Id='LogFolder' Name='Log'/>
          </Directory>
        </Directory>
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ApplicationProgramsFolder" Name="MyAppName 
$(var.ProductVersion)"/>
      </Directory>
    </Directory>
    <!-- BEGIN: Features -->
    <Feature Id="ProductFeature" ConfigurableDirectory="TARGETDIR" Level="1">
      <ComponentGroupRef Id="Shortcuts"/>
      <ComponentGroupRef Id="ProductComponents.Help" />
      <ComponentGroupRef Id="ProductComponents.Images" />
      <ComponentGroupRef Id="ProductComponents.RoamingFolders" />
      <ComponentGroupRef Id="HeatBinaryFiles" />
    </Feature>
    
    <!-- BEGIN: Add/Remove Programs Icon -->
    <Property Id="ARPPRODUCTICON" Value="appicon.ico" />
    
    <!-- BEGIN: User Interface -->
    <UIRef Id="WixUI_MYAPP" />
 
  </Product>
</Wix>
 
Essentially, I'd like to communicate a friendly error message back to the 
"ended prematurely"-screen that currently comes up when an error occurs. Not 
sure whether I've got it set up correctly in the above, or I need to make a 
call to a method of sorts in the Custom Action besides signaling 
ActionResult.Failure.
 
Best Regards,
 
Tom
                                          
------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to