Сбой Publish-AzureWebsiteProject в режиме выпуска - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь развернуть веб-службу Azure (проект веб-API) через TeamCity с помощью сценария Powershell, который использует команду Publish-AzureWebsiteProject и предоставляет параметр «Конфигурация» как «Release».

Существует отдельная конфигурация сборки TC для того же проекта в режиме отладки, которая успешно выполняется, однако новая версия, которую я сделал для развертывания в режиме выпуска, дает сбой.Предыдущий шаг, который строит проект (используя встроенную в TC команду «Visual Studio Solution»), завершается успешно, но к моменту перехода к шагу публикации он завершается неудачно, утверждая, что произошла ошибка сборки.

Журнал сообщает об этом как об ошибке:

File.cs(12,7): error CS1041: Identifier expected; 'static' is a keyword
File.cs(12,14): error CS1518: Expected class, delegate, enum, interface, or struct

Строка, на которую он жалуется, выглядит следующим образом:

using static MyPackage.Extensions.ExtensionClass;

Однако я могу развернуть этот проект в режиме отладки через TeamCity, яЯ могу собрать его локально в режиме отладки и выпуска, и я могу успешно опубликовать локальный файл в режиме выпуска.

У кого-нибудь есть идеи?Сначала я подумал, что он использует другую версию инструментов компиляции, чем я использовал локально, но не имеет смысла, что она будет отличаться в зависимости от конфигурации сборки.

1 Ответ

0 голосов
/ 29 июня 2018

Если ваш пакет является опубликованным почтовым индексом, вы можете попробовать способ публикации Kudu Rest API.Даже изначально, когда я использовал Publish-AzureWebsiteproject, я сталкивался с похожими проблемами.Это код, который я использовал для успешного развертывания.

$creds = Invoke-AzureRmResourceAction -ResourceGroupName $ResourceGroupName -ResourceType Microsoft.Web/sites/config -ResourceName $functionAppName/publishingcredentials -Action list -ApiVersion 2015-08-01 -Force
$username = $creds.Properties.PublishingUserName
$password = $creds.Properties.PublishingPassword
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
Write-Host -ForegroundColor Yellow `r`n"Deploying Azure Functions..."
$apiUrl = "https://" + $functionAppName +".scm.azurewebsites.net/api/zip/site/wwwroot"
$filePath = ".\PublishedOutput.zip"
$Headers = @{Authorization = ("Basic {0}" -f $base64AuthInfo)}
Invoke-RestMethod -Uri $apiUrl -Headers $Headers -Method PUT -InFile $filePath -ContentType "multipart/form-data"
...