2016-03-01 2 views
0

Я пытаюсь вызвать Msdeploy в powershell, который является частью задачи сборки teamcity.Ошибка командной строки Powershell Msdeploy

Мой сценарий, как это ниже



    $folderName = "packageTmp" 
    $packagePath = (gci -path %teamcity.build.checkoutDir%\extract -filter $foldername -Recurse | Select-Object -Expand FullName) |Out-String 

    $azureSite ="%azureSite%" 
    $azurePublishUrl = "%azurePublishUrl%" 
    $azureUsername ="%azureUsername%" 
    $azurePassword = "%azurePassword%" 

    $localPath =$packagePath 
    $server ="https://$azurePublishUrl/msdeploy.axd?site=$azureSite,UserName=$azureUsername,Password=$azurePassword,AuthType=Basic" 
    $remotePath="%azureSite%" 

    $env:Path += ";C:\Program Files\IIS\Microsoft Web Deploy V3" 

    function PushToTarget() { 
    param([string]$server, [string]$remotePath, [string]$localPath) 
      cmd.exe /C $("msdeploy.exe -verb:sync -source:contentPath=`"{0}`" -dest:computerName=`"{1}`",contentPath=`"{2}`" -whatif" -f $localPath, $server, $remotePath) 
    } 
    echo "Server: " $server 
    echo "remote path: " $remotePath 
    echo "local path: " $localPath 

    PushToTarget "$server" "$remotePath" "$localPath" 

в то время как я запускаю это я получаю следующее сообщение об ошибке, стек ошибок следует

Error: A '-dest' argument must be specified with the 'sync' verb.

Как говорит ошибка я включил синхронизации ключевое слово уже.

что я делаю неправильно и как я могу его исправить?

я пытался использовать следующие решения

solution1

stackoverflow post

ответ

1

Я не вижу проблемы в сценарии, но PS может быть частности.

Вот как новый ASP.NET 5 PS развертывание на основе выполняет MSDeploy.exe, возможно, это будет работать лучше для вас:

$webrootOutputFolder = (get-item (Join-Path $packOutput $webroot)).FullName 
    $publishArgs = @() 
    $publishArgs += ('-source:IisApp=''{0}''' -f "$webrootOutputFolder") 
    $publishArgs += ('-dest:IisApp=''{0}'',ComputerName=''{1}'',UserName=''{2}'',Password=''{3}'',IncludeAcls=''False'',AuthType=''Basic''{4}' -f 
          $publishProperties['DeployIisAppPath'], 
          (Get-MSDeployFullUrlFor -msdeployServiceUrl $publishProperties['MSDeployServiceURL']), 
          $publishProperties['UserName'], 
          $publishPwd, 
          $sharedArgs.DestFragment) 
    $publishArgs += '-verb:sync' 
    $publishArgs += '-enableLink:contentLibExtension' 
    $publishArgs += $sharedArgs.ExtraArgs 

    $command = '"{0}" {1}' -f (Get-MSDeploy),($publishArgs -join ' ') 

    if (! [String]::IsNullOrEmpty($publishPwd)) { 
    $command.Replace($publishPwd,'{PASSWORD-REMOVED-FROM-LOG}') | Print-CommandString 
    } 
    Execute-Command -exePath (Get-MSDeploy) -arguments ($publishArgs -join ' ') 
+0

Благодаря Cheif7, удалось развернуть пакет throuh командной лазурь PowerShell Publish-AzureWebSiteProject. (избегал MSDeploy) – Bumble

+1

Рад помочь. – chief7

Смежные вопросы