我正在尝试通过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中呢?
提前致谢!
答案 0 :(得分:1)
preSync
/ postSync
是msdeploy命令行的一项功能,而不是Microsoft.Web.Deployment
API本身。两者基本上只是对CreateObject().SyncTo(destOptions)
的调用,其中destOptions
是从主同步复制的。
你应该没有麻烦在PS中复制它。