I've got an installer than either installs a database and a backend service or 
upgrades (using a utility) a database along with the backend service. The 
database upgrade utility reports back to the installer whether or not the 
database upgrade went fine.

This utility compares the database configuration mentioned in files installed 
by the installer to what the database tables currently look like.
To be specific, after the database configuration files are installed to the 
hard drive (understand the timing of the file copy), 
the database upgrade utility does the compare.  All this is done after the user 
has clicked through all the dialogs. 

Here is a snapshot of code that shows how this is implemented.

    <InstallExecuteSequence>      
      <Custom Action ="CreateSQLServerDatabaseWithImpersonationLoggedInUser" 
After="InstallFinalize">Not Installed</Custom>      
      <Custom Action ="CreateHTSServiceConfig" After="InstallFinalize">Not 
Installed</Custom>
      <Custom Action ="ConfigureNonAdministratorUserToUseWCFServices" 
After="InstallFinalize">Not Installed</Custom>
      <Custom Action ="StartService" After="InstallFinalize">Not 
Installed</Custom>      
      <Custom Action ="RemoveSSLAndWCFAssignmentsAndHTSLicense" 
Before="InstallInitialize">Installed</Custom>
      <Custom Action ="Delete_HTSLogFiles_CleanupTask" After="InstallFinalize" 
>Installed</Custom>                
    </InstallExecuteSequence>

The custom action CreateSQLServerDatabaseWithImpersonationLoggedInUser is what 
kicks off the database upgrade tool.


The last dialog that comes up after all this is done is the Exit Dialog. 
Nothing new here.  
Now I've been able to customize the stock version of the Exit Dialog but I need 
the Exit Dialog behavior to react to the database conversion; this is where I'm 
having problems.

The custom action CreateSQLServerDatabaseWithImpersonationLoggedInUser  sets a 
session variable (session.item("DatabaseConversion")) to the result the 
database conversion and you can see this is the log files created by msiexec 
/l*v log file.

I need this information to be echoed back into the installer.  
I've read that in order to do this properly .. you need to do something similar 
to ...
<Publish Dialog="DatabaseUserAndHTSServicePortDialog" Control="Next" 
Event="DoAction" Value="ValidateServerConfigAndUserPermissions" Order 
="2">DATABASEUSERANDPORT="TRUE"</Publish>
<Publish Dialog="DatabaseUserAndHTSServicePortDialog" Control="Next" 
Property="HTSSQLVERSION" Value="[HTSSQLVERSION]" Order="3">1</Publish>

In this case, ValidateServerConfigAndUserPermissions is the custom action that 
sets HTSSQLVERSION and after it completes the next publish dialog statement 
brings the value from the custom action back into the installer.


In my CustomUI_InstallDir.wxs, I've got the line
<Publish Dialog="MyExitDialog" Control="Finish" Event="EndDialog" 
Value="Return" Order="999"></Publish>


I've got exit dialog looking like

    <Fragment>
        <UI>
            <Dialog Id="MyExitDialog" Width="370" Height="270" 
Title="!(loc.ExitDialog_Title)">
                <Control Id="Finish" Type="PushButton" X="236" Y="243" 
Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
                <Control Id="Cancel" Type="PushButton" X="304" Y="243" 
Width="56" Height="17" Disabled="yes" Text="!(loc.WixUICancel)" />
                <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" 
Height="234" TabSkip="no" Text="!(loc.ExitDialogBitmap)" />
                <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" 
Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
                <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" 
Height="0" />
                <!--<Control Id="Description" Type="Text" X="135" Y="70" 
Width="220" Height="40" Transparent="yes" NoPrefix="yes" 
Text="!(loc.ExitDialogDescription)" />-->


                <Control Id="Description" Type="Text" X="135" Y="70" 
Width="220" Height="40" Transparent="yes" NoPrefix="yes" 
Text="[DATABASECONVERSIONERRORTEXT]" />

                <Control Id="Title" Type="Text" X="135" Y="20" Width="220" 
Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
            </Dialog>

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

            <AdminUISequence>
                <Show Dialog="MyExitDialog" OnExit="success" />
            </AdminUISequence>
        </UI>
    </Fragment>

So before ExitDialog appears, I need to properly populate 
DATABASECONVERSIONERRORTEXT ...  how would I do this.  


Any help is appreciated.  I think I'm close .. but maybe not ....   If I come 
up an answer .. I'll post back as well.

Rob

 




------------------------------------------------------------------------------
FREE DOWNLOAD - uberSVN with Social Coding for Subversion.
Subversion made easy with a complete admin console. Easy 
to use, easy to manage, easy to install, easy to extend. 
Get a Free download of the new open ALM Subversion platform now.
http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to