2009-03-28 8 views
3

Gibt es einen Unterschied zwischen diesen (verschachtelten Installer)TransactedInstaller vs. verschachtelte Installer

ServiceInstaller si = new ServiceInstaller(); 
si.ServiceName = "MyService"; 

ServiceProcessInstaller spi = new ServiceProcessInstaller(); 
spi.Account = ServiceAccount.LocalSystem; 

spi.Installers.Add(si); 

this.Installers.Add(spi); 

und das? (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); 

Sind verschachtelte Installer standardmäßig aktiviert? Welcher Stil sollte bevorzugt werden?

Antwort

5

TransactedInstaller wird Commit-Aufruf/Rollback automatisch, wenn die benutzerdefinierte Aktion erfolgreich war/ist fehlgeschlagen.

Mit verschachtelten Installer müssen Sie das Rollback sequenzieren/Commit Sie sich selbst in einem Fall eines Fehlers, werden sie nicht aufgerufen werden, wenn Sie nicht explizit gesagt hat zu laufen.