0

MSDeploy タスクを介して preSync/postSync コマンドを指定することは可能ですか? そうでない場合、どうすればこれを達成できますか?

4

1 に答える 1

1

どのようなMSDeployタスクを使用していますか?msdeploy.exeのExecを介している場合はもちろん、直接サポートしていないラッパーの場合は、同期前/同期後だけなので、run-commandプロバイダーでsyncを再度呼び出すことでそれらをエミュレートできます。とにかく、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;
    }
于 2012-06-05T22:36:03.147 に答える