When an update is applied, inter-process communication takes place between all running processes with an instantiated Update Controller. When an update is executed, an attempt is made to shutdown any process with an Update Controller configured with the same ApplicationID as the initiating controller. In each of these processes, the UpdateStarted event is first raised to allow the implementer to perform any necessary work prior to the shutdown attempt. From this event the implementer can control the behavior of the update process.
1. Inspect the physical path of the instantiating host assembly, and use this information to support independent side-by-side application updating.
2. Cancel the update process currently in progress.
3. Ignore the update process, and prevent the current instance from being shutdown, without canceling the entire update process.
4. Pass from the initiating application instance to all other instances custom data that can be used to determine the proper behavior to take. Set the UpdateController.CustomIpcData property and investigate the UpdateStarted Event Arguments custom data property.
Note: When the application update process is configured for No Shutdown by using the ApplyUpdateOptions.NoShutdown parameter, only the initiating update process will not shutdown. The inter-process communication still occurs and the UpdateStarted event is raised on all other instances. If your implementation should prevent other processes from shutting down, handle the UpdateStarted event and set up your desired behavior.
Disabling IPC
Update Controller Inter-Process Communications can be disabled by setting the Update Controller DisableControllerIPC property to true.