So, I have two scenarios during installation:
1. Database is installed on a local computer. In that case, I have to set the In-script execution type of custom actions ISSQLServerInstall, Uninstall and rollback to Deffered Execution in system context (which is default), because otherwise in Windows Vista or 7 installer cannot connect to newly installed instance of SQL Express 2008 (setup is actually not running with full administative rights).
2. Database is installed on a remote computer. In that case I have to set the In-script execution type of custom actions ISSQLServerInstall, Uninstall and rollback to Deffered Execution because they have to authenticate themselfs on SQL Server using current windows user name, not as a local system.
I,ve cloned the ISSQLServerInstall CA and made ISSQLServerInstallNetwork CA, and set the In-script execution type to only Deffered Execution. First is executed if a SQL server is on a local computer and second if the SQL server is on remote computer. I've did the same with ISSQLServerUninstall and ISSQLServerRollback.
The problem is, even my new CA ISSQLServerInstallNetwork executes as planned during the installation of a remote database, it actually does nothing (ie not run any script):
MSI (s) (C0:10) [09:07:46:221]: Skipping action: ISSQLServerInstall (condition is false)
MSI (s) (C0:10) [09:07:46:221]: Doing action: ISSQLServerInstallNetwork
Action 9:07:46: ISSQLServerInstallNetwork.
Action start 9:07:46: ISSQLServerInstallNetwork.
ISSQLServerInstallNetwork:
Action ended 9:07:46: ISSQLServerInstallNetwork. Return value 1.
The behavior of my CAs ISSQLServerUninstallNetwork and ISSQLServerRollbackNetwork is the same (executes but doing nothing).
Does anybody have an idea how to solve the problem?
Edited by Deli Radivoje, 20 November 2009 - 09:59.