2017-01-18 6 views
0

Мне нужен сценарий PowerShell, который будет развертывать артефакты основного приложения ASP.NET для Azure Web Service. Поиск в Интернете мне удалось найти этот скрипт:Скриншот PowerShell для развертывания артефактов ядра ASP.NET для Azure

param($websiteName, $packOutput) 

$website = Get-AzureWebsite -Name $websiteName 

Stop-AzureWebsite -Name $websiteName 

# get the scm url to use with MSDeploy. By default this will be the second in the array 
$msdeployurl = $website.EnabledHostNames[1] 

$publishProperties = @{'WebPublishMethod'='MSDeploy'; 
         'MSDeployServiceUrl'=$msdeployurl; 
         'DeployIisAppPath'=$website.Name; 
         'Username'=$website.PublishingUsername; 
         'Password'=$website.PublishingPassword 
         } 

$publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\1.2.0\default-publish.ps1" 

. $publishScript -publishProperties $publishProperties -packOutput $packOutput 

Start-AzureWebsite -Name $websiteName 

Я использую его так, как это показано на скриншоте: enter image description here

... Но ничего не происходит, в результате выполнения команды MSDeploy: нет ошибок, нет данных, развернутых ...

Итак, каков правильный способ развертывания артефактов ASP.NET Core с помощью PowerShell?

ответ

0

Visual Studio может генерировать сценарий публикации Windows PowerShell для развертывания на веб-сайте. Сценарий публикации может выглядеть так.

опубликовать сценарий

[cmdletbinding(SupportsShouldProcess=$true)] 
param([email protected]{}, $packOutput, $pubProfilePath) 

# to learn more about this file visit https://go.microsoft.com/fwlink/?LinkId=524327 

try{ 
    if ($publishProperties['ProjectGuid'] -eq $null){ 
     $publishProperties['ProjectGuid'] = 'xxxxxxxx-0260-4800-b864-e9afa92d7fc2' 
    } 

    $publishModulePath = Join-Path (Split-Path $MyInvocation.MyCommand.Path) 'publish-module.psm1' 
    Import-Module $publishModulePath -DisableNameChecking -Force 

    # call Publish-AspNet to perform the publish operation 
    Publish-AspNet -publishProperties $publishProperties -packOutput $packOutput -pubProfilePath $pubProfilePath 
} 
catch{ 
    "An error occurred during publish.`n{0}" -f $_.Exception.Message | Write-Error 
} 

И опубликовать модуль, который содержит функции, которые будут использоваться в сценариях. Для получения дополнительной информации о публикациях для развертывания на веб-сайте см. this documentation.

+1

Я знаю, что VS генерирует скрипты, но я не могу заставить их работать. Я попробовал следующую команду с VS-скриптом './DemoDeploy - Web Publish-publish.ps1 -packOutput« Путь к артефактам веб-сайта »-pubProfilePath« Путь к профилю, сгенерированному VS ». Итак, результаты такие же, как на скриншоте выше. Я видел предоставленную ссылку раньше, но мне это тоже не помогло. Я не видел созданный json-файл (который они используют в документации), а скрипт VS ps1, похоже, не имеет параметров, которые они используют в примерах. Не могли бы вы предоставить пример использования, который работает? – pasul

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