1

我正在尝试通过 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 中?

提前致谢!

4

1 回答 1

1

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

在 PS 中复制它应该没有问题。

于 2012-10-08T11:28:49.913 回答