我正在尝试通过 Web Deploy API (Microsoft.Web.Deployment) 部署网站。
使用 msdelpoy.exe,我可以根据需要执行任意数量的 -postSync:runcommand(或 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 中?
提前致谢!