【问题标题】:Web Deploy (MSDeploy) API "postSync:runCommand"Web 部署 (MSDeploy) API “postSync:runCommand”
【发布时间】:2012-10-08 19:28:49
【问题描述】:

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

提前致谢!

【问题讨论】:

    标签: msdeploy web-deployment


    【解决方案1】:

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

    在 PS 中重现它应该没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-27
      • 2014-05-26
      相关资源
      最近更新 更多