我正在尝试通过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中?
提前感谢!
发布于 2012-10-08 19:28:50
preSync / postSync是msdeploy命令行的一个特性,而不是Microsoft.Web.Deployment应用编程接口本身。两者基本上都只是对CreateObject().SyncTo(destOptions)的调用,其中destOptions是从主同步复制而来的。
你应该可以在PS中重现它。
https://stackoverflow.com/questions/11469985
复制相似问题