2012-06-05 63 views

回答

1

你正在使用什麼樣的MSDeploy任務?如果是通過msdeploy.exe執行,那麼是的,當然,如果它是某種不直接支持它們的包裝,那麼您可以通過再次與運行命令提供程序調用同步來模擬這些,因爲預/後同步只是無論如何,try/catch/finally結構中的另一個調用同步包裝主同步。

private int ExecuteWorker() 
{ 
    ... 
    if (!this.HandleAuxillarySync("-preSync", this._commandLine._preSyncParameters, retbaseOptions2)) 
     return -1; 
    DeploymentChangeSummary deploymentChangeSummary; 
    try 
    { 
     deploymentChangeSummary = @object.SyncTo(retproviderOptions2, retbaseOptions2, syncOptions); 
    } 
    ... 
    finally 
    { 
     this.HandleAuxillarySync("-postSync", this._commandLine._postSyncParameters, retbaseOptions2); 
    } 
    this.HandleAuxillarySync("-postSyncOnSuccess", this._commandLine._postSyncOnSuccessParameters, retbaseOptions2); 
    ... 

private bool HandleAuxillarySync(string syncType, Dictionary<string, string> sourceParameters, DeploymentBaseOptions destBaseOptions) 
{ 
    ... 
    try 
    { 
     using (DeploymentObject @object = DeploymentManager.CreateObject(retproviderOptions, retbaseOptions)) 
     @object.SyncTo(destBaseOptions, syncOptions); 
      flag = true; 
    } 
+0

我使用Microsoft.Web.Publishing.targets的MSBuild任務MSDeploy。 –

+0

在這種情況下,不,只是調用單獨的同步有條件的前和發佈您的主同步就像exe本身。 –