【问题标题】:How to run an Azure deployment PowerShell script from console如何从控制台运行 Azure 部署 PowerShell 脚本
【发布时间】:2023-03-19 11:16:01
【问题描述】:

我已经从 Azure 门户下载了一个网站发布配置文件。在 Visual Studio 中导入发布配置文件后,我可以通过单击 ProjectName > Publish 来发布我的网站而无需提供凭据。

导入产生的一系列文件

  • xxxxx - FTP.pubxml
  • xxxxx - FTP.pubxml.user
  • xxxxx - FTP-publish.ps1
  • xxxxx - Web Deploy.pubxml
  • xxxxx - Web Deploy.pubxml.user
  • xxxxx - Web Deploy-publish.ps1

我想知道是否可以在我的简单部署过程中使用任何一个 powershell 文件。

当我尝试运行 xxxxx - Web Deploy-publish.ps1 时出现错误:

ps1:发布期间发生错误。无法将参数绑定到 参数“publishProperties”,因为它为空。

我想我缺少一些参数。有人可以提供一个如何正确运行它的示例吗?

【问题讨论】:

    标签: asp.net powershell azure deployment azure-powershell


    【解决方案1】:

    这是一个示例 Powershell,可用于将 Web 应用部署到 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 -------------------------------------------------------------------------------------------------------------------------------
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      相关资源
      最近更新 更多