使用发布管道将.NET Core 3.0 API部署到Azure Web App

时间:2019-09-30 20:10:32

标签: azure .net-core azure-devops azure-web-app-service .net-core-3.0

我试图将我的API从.NET Core 2.2升级到3.0,但是我无法使Azure Web App实际使用3.0运行该应用程序。

我的构建管道配置:

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

variables:
  buildConfiguration: 'Release'

steps:
- task: UseDotNet@2
  displayName: 'Use .NET Core 3'
  inputs:
    version: 3.x
- script: dotnet tool install --global dotnet-ef
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'
- task: efcore-migration-script-generator-task@0
  inputs:
    projectpath: 'Models/Models.csproj'
    databasecontexts: 'DataContext'
    startupprojectpath: 'Api/Api.csproj'
    targetfolder: '$(build.artifactstagingdirectory)/migrations'
- script: dotnet publish --output $(Build.ArtifactStagingDirectory)
  displayName: 'dotnet publish $(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

然后,我有一个多阶段发布管道,该管道使用Azure App Service Deploy任务将工件发布到Azure。一切正常运行

我已按照here的指示安装了预览扩展,并运行powershell命令Test-Path D:\home\SiteExtensions\AspNetCoreRuntime.3.0.x86\返回了true。我仍然看到以下错误。

ANCM Failed to Find Native Dependencies

回到Powershell中,运行dotnet --versiondotnet --list-runtimes表明,尽管存在3.0运行时,但它只能识别.NET Core 2运行时。尽我所知,安装网站扩展名不会更新使用新dotnet版本的路径,并且Azure Devops部署任务似乎没有任何选项可以替代默认值。是否有人设法通过Azure Devops发布管道部署了.NET Core 3应用程序?

1 个答案:

答案 0 :(得分:0)

无论如何我都不认为这是一个好的解决方案,但是我现在正在使用的解决方法是添加一个web.config文件,该文件将完整路径传递到{ {1}}

dotnet

我仍在寻找不太容易出错的解决方案。