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