发布 - AzureWebsiteProject在发布模式下失败

时间:2018-05-30 05:30:40

标签: c# azure teamcity azure-powershell azure-web-app-service

我尝试通过Powershell脚本通过TeamCity部署Azure Web服务(Web API项目),该脚本使用Publish-AzureWebsiteProject命令并提供"配置"参数为"发布"。

在Debug模式下,同一个项目有一个单独的TC构建配置,但是,我在Release模式下部署的新版本失败了。构建项目的前一步(使用TC内置" Visual Studio解决方案"命令)成功,但是当它到达发布步骤时,它失败,声称存在构建错误。

日志将此报告为错误:

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在Debug模式下部署这个项目,我可以在Debug和Release模式下在本地构建它,并且我可以在Release模式下成功地进行本地文件发布。

有人有什么想法吗?我的第一个想法是它使用的是与我在本地使用不同的编译工具版本,但根据构建配置它会有所不同。

1 个答案:

答案 0 :(得分:0)

如果您的软件包是已发布的zip,则可以尝试使用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"