Как запустить сценарий PowerShell для развертывания Azure из консоли

Я скачал профиль публикации веб-сайта с портала Azure. После импорта профиля публикации в Visual Studio я могу опубликовать свой веб-сайт без предоставления учетных данных, нажав ProjectName > Publish.

Импорт создал серию файлов

  • ххххх - FTP.pubxml
  • ххххх - FTP.pubxml.пользователь
  • ххххх — FTP-публикация.ps1
  • ххххх — веб-развертывание.pubxml
  • ххххх — веб-развертывание.pubxml.user
  • xxxxx — веб-развертывание-publish.ps1

Мне интересно, могу ли я использовать любой из файлов powershell в моем простом процессе развертывания.

Когда я попытался запустить xxxxx - Web Deploy-publish.ps1, я получил ошибку:

ps1: Произошла ошибка во время публикации. Невозможно связать аргумент с параметром "publishProperties", так как он имеет значение null.

Я предполагаю, что мне не хватает некоторых параметров. Может ли кто-нибудь предоставить мне пример, как правильно его запустить?


person Andrzej Gis    schedule 08.12.2015    source источник


Ответы (1)


Вот пример Powershell, который можно использовать для развертывания веб-приложения в Azure.

Вам нужно установить параметры и указать параметры публикации, чтобы получить пароль развертывания и т. д.

# How to run the script
# deploy-azure-website-devbox-webdeploy.ps1 -ProjectFile

# Define input parameters
Param(
    [Parameter(Mandatory = $true)]
    [String]$ProjectFile,          # Point to the .csproj file of the project you want to deploy

    [Switch]$Launch                # Use this switch parameter if you want to launch a browser to show the website
)

# Begin - Actual script -----------------------------------------------------------------------------------------------------------------------------

# Set the output level to verbose and make the script stop on error
$VerbosePreference = "Continue"
$ErrorActionPreference = "Stop"

$scriptPath = Split-Path -parent $PSCommandPath

# Mark the start time of the script execution
$startTime = Get-Date

# Build and publish the project via web deploy package using msbuild.exe 

Write-Verbose ("[Start] deploying to Windows Azure website {0}" -f $websiteName)

# Read from website-environment.xml to get the environment name
[Xml]$envXml = Get-Content ("{0}\website-environment.xml" -f $scriptPath)
$websiteName = $envXml.environment.name

# Read from the publish settings file to get the deploy password
$publishXmlFile = "{0}\{1}.pubxml" -f $scriptPath, $websiteName
[Xml]$xml = Get-Content ("{0}\{1}.publishsettings" -f $scriptPath, $websiteName)
$password = $xml.publishData.publishProfile.userPWD.get(0)

# Run MSBuild to publish the project
& "$env:windir\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" $ProjectFile `
    /p:VisualStudioVersion=11.0 `
    /p:DeployOnBuild=true `
    /p:PublishProfile=$publishXmlFile `
    /p:Password=$password

Write-Verbose ("[Finish] deploying to Windows Azure website {0}" -f $websiteName)

# Mark the finish time of the script execution
$finishTime = Get-Date

# Output the time consumed in seconds
Write-Output ("Total time used (seconds): {0}" -f ($finishTime - $startTime).TotalSeconds)

# Launch the browser to show the website
If ($Launch)
{
    Show-AzureWebsite -Name $websiteName
}

# End - Actual script -------------------------------------------------------------------------------------------------------------------------------
person Aram    schedule 08.12.2015