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 в случае ошибки, они не будут вызываться, если вы явно не указали им запускаться.

Другие вопросы по тегам