linux 在Azure WebApp中部署Blazor Server应用程序已完成,但文件夹为空

ocebsuys  于 2023-03-29  发布在  Linux
关注(0)|答案(1)|浏览(139)

我需要你的帮助!
我在Blazor服务器中有一个应用程序,我正在尝试将发布管道集成到Azure DevOps。发布发生在Linux类型的Azure WebApp上的暂存分发插槽中。
我的管道成功完成,我检查了代理文件夹中的.zip文件,它似乎是正确的(dll和wwwroot文件夹在根目录中)。我正在附加我当前使用的管道。
我注意到的一件事是,在我的App Service的Distribution Center选项卡中,Source分支是Main而不是Staging。我声明我手动创建了应用程序和staging插槽,并且与外部存储库没有关联。
enter image description here

trigger:
  - staging

pool:
  Default

variables:
  buildConfiguration: 'Release'
  isMain: $[eq(variables['Build.SourceBranch'], 'refs/heads/staging')]

steps:
- script: |
    dotnet restore
    dotnet build --configuration Release
    
- task: DotNetCoreCLI@2
  condition: and(succeeded(), eq(variables.isMain, true))
  inputs:
    command: publish
    arguments: '--configuration Release --output publish_output'
    projects: 'Company.Frontend/Company.Frontend.csproj'
    publishWebProjects: false
    modifyOutputPath: false
    zipAfterPublish: false
    
- task: ArchiveFiles@2
  displayName: "Archive files"
  condition: and(succeeded(), eq(variables.isMain, true))
  inputs:
    rootFolderOrFile: "$(System.DefaultWorkingDirectory)/publish_output"
    includeRootFolder: false
    archiveFile: "$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip"
 

- task: AzureWebApp@1
  retryCountOnTaskFailure: 5
  condition: and(succeeded(), eq(variables.isMain, true))
  inputs:
    azureSubscription: 'CompanyStg'
    appType: 'webAppLinux'
    appName: 'xxx-app-stg'
    projects: 'Company.Frontend/Company.Frontend.csproj'
    deployToSlotOrASE: true
    ResourceGroupName: 'Company-STG'
    SlotName: 'staging'
    packages: '$(System.DefaultWorkingDirectory)/*.zip'

我尝试通过visual studio发布,应用程序部署成功

wnavrhmk

wnavrhmk1#

管道看起来很好,但我会尝试通过进行这些更改来进行故障排除:
1.我查看了我的管道,我的触发器看起来像这样:

trigger: 
  branches:
    include: 
    - develop
    - qa
    - staging

1.您可以尝试将--self-contained添加到DotNetCoreCLI@2中的参数:

- task: DotNetCoreCLI@2
  condition: and(succeeded(), eq(variables.isMain, true))
  inputs:
    command: publish
    arguments: '--configuration Release --output publish_output --self-contained true --runtime linux-x64'
    projects: 'Company.Frontend/Company.Frontend.csproj'
    publishWebProjects: false
    modifyOutputPath: false
    zipAfterPublish: false

1.我尝试将AzureWebApp@1改为只使用ArchiveFiles中的zip文件,并删除csproj位:

- task: AzureWebApp@1
  retryCountOnTaskFailure: 5
  condition: and(succeeded(), eq(variables.isMain, true))
  inputs:
    azureSubscription: 'CompanyStg'
    appType: 'webAppLinux'
    appName: 'xxx-app-stg'
    deployToSlotOrASE: true
    ResourceGroupName: 'Company-STG'
    SlotName: 'staging'
    package: '$(System.DefaultWorkingDirectory)/build$(Build.BuildId).zip'

1.另外,之前有一件事让我很不爽-确保你的staging分支有这个版本的YAML文件。我之前花了太多时间进行故障排除,才意识到我的YAML文件在develop上,而不是在qastaging上。

相关问题