TransactedInstaller против вложенного установщика
Есть ли разница между этим (вложенный установщик)
ServiceInstaller si = new ServiceInstaller();
si.ServiceName = "MyService";
ServiceProcessInstaller spi = new ServiceProcessInstaller();
spi.Account = ServiceAccount.LocalSystem;
spi.Installers.Add(si);
this.Installers.Add(spi);
и это? (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);
Вложенный установщик по умолчанию работает? Какой стиль должен быть предпочтительным?
1 ответ
Решение
TransactedInstaller автоматически вызовет Commit/Rollback, если пользовательское действие выполнено успешно / неудачно.
С помощью вложенного установщика вам нужно будет выполнить последовательность Rollback/Commit your self в случае ошибки, они не будут вызываться, если вы явно не указали им запускаться.