TransactedInstaller против вложенного установщика - PullRequest
3 голосов
/ 28 марта 2009

Есть ли разница между этим (вложенный установщик)

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 Ответ

5 голосов
/ 30 марта 2009

TransactedInstaller автоматически вызовет принятие / откат, если пользовательское действие выполнено успешно / неудачно.

С помощью вложенного установщика вам нужно будет выполнить последовательность отката / фиксации себя в случае ошибки, они не будут вызваны, если вы явно не сказали им бежать.

...