Is there an difference between this (nested Installer)
ServiceInstaller si = new ServiceInstaller();
si.ServiceName = "MyService";
ServiceProcessInstaller spi = new ServiceProcessInstaller();
spi.Account = ServiceAccount.LocalSystem;
spi.Installers.Add(si);
this.Installers.Add(spi);
and this? (TransactedInstaller)
TransactedInstaller ti = new TransactedInstaller();
ServiceInstaller si = new ServiceInstaller();
si.ServiceName = "MyService";
ti.Installers.Add(si);
ServiceProcessInstaller spi = new ServiceProcessInstaller();
spi.Account = ServiceAccount.LocalSystem;
ti.Installers.Add(spi);
this.Installers.Add(ti);
Are nested Installer by default transacted? Which style should be prefered?
TransactedInstaller will call Commit/Rollback automaticly if the custom action has succeeded/failed.
With nested installer you will need to sequence the Rollback/Commit your self in a case of an error, they will not be called if you didn't explicitly tell them to run.