Web部署(MSDeploy)API“postSync:runCommand”

时间:2012-07-13 11:53:27

标签: msdeploy web-deployment

我正在尝试通过Web Deploy API(Microsoft.Web.Deployment)部署网站。

使用msdelpoy.exe,我可以随心所欲地执行-postSync:runco​​mmand(或preSync),但我无法通过API看到如何做到这一点。

这是我在powershell中的部署脚本,但您可以看到正在使用的.net类。

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Deployment")
function CallMSDeploy([string]$destinationServer, [string]$destinationIISSiteName, $sourceDirectory)
{
    $destBaseOptions   = new-object Microsoft.Web.Deployment.DeploymentBaseOptions
    $destBaseOptions.UserName = $deployUserName
    $destBaseOptions.Password = $deployPassword
    $destBaseOptions.ComputerName = $destinationServer

    $syncOptions       = new-object Microsoft.Web.Deployment.DeploymentSyncOptions

    $deploymentObject = [Microsoft.Web.Deployment.DeploymentManager]::CreateObject("contentPath", $sourceDirectory)
    $deploymentObject.SyncTo("contentPath",$destinationIISSiteName,$destBaseOptions,$syncOptions);
}

我知道我可以使用“runCommand”提供程序创建一个Microsoft.Web.Deployment.DeploymentObjectProvider并指定一个路径,但是如何将它添加到上述部署的preSync中呢?

提前致谢!

1 个答案:

答案 0 :(得分:1)

preSync / postSync是msdeploy命令行的一项功能,而不是Microsoft.Web.Deployment API本身。两者基本上只是对CreateObject().SyncTo(destOptions)的调用,其中destOptions是从主同步复制的。

你应该没有麻烦在PS中复制它。