As Rob indicated the dependency "loop" would not exist by default. It depends on how the designer implemented the MyClient service. A Windows Service should have a control handler thread that processes events from the Service Control Manager and separate worker thread(s) that implement the functionality of the service (such as calling CreateProcess to launch another application). The control thread must always run and process events from the SCM. If it becomes blocked the SCM will report an error against the service for not responding. If the SERVICE_CONTROL_STOP action cannot be implemented immediately the service should respond by setting the service's status to SERVICE_STOP_PENDING and incrementing the HintCounter to avoid a SCM timeout.
Your theory would suggest that in addition to the worker thread calling CreateProcess to spawn the bundle (and then the bundle calling CreateProcess to spawn the package) the developer of the MyClient service implemented some code to wait for the bundle exe to terminate before it "allowed" the control handler thread to process an SCM event. (Not generally advisable, but maybe there is a good reason.) So your theory requires that a designer implement this behavior in the MyClient service. Your theory also assumes that the bundle exe has code to determine when the package has terminated, which I believe is correct. So that part of the loop is probably valid. The question however goes back to how the MyClient service is designed. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Upgrade-uninstall-restart-issue-tp7586315p7587151.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users