从桌面发布后,Azure 管道 Blazor WASM 不会传播更改

Azure pipeline Blazor WASM do not propagate changes after publish from desktop

我正在使用 AZURE 管道部署 Blazor WASM(有 ASP.NET 服务器支持)。我从 .NET Core 3.1 开始,最近转移到 .NET 5。我需要一个快速修复来升级版本,运行 为什么我从桌面上的 visual studio 部署,而不是通过 azure 管道。之后,当我使用 azure 管道时,我的 blazor 页面(razor/razor.cs 文件)没有变化 确实会进入已发布的版本。 静态文件(即index.html)中的更改do通过。但是,文件已更新(dll 具有正确的时间戳)。 我试过在我的 razor 文件中添加一些简单的文本以及较大的更改,但它不会影响已发布的版本。当我在 index.html 中进行更改时,我确实在调试面板中看到了更改(F12 -> 网络 -> https://MyWebbApp.azurewebsites.net/ -> 预览)。 一切都可以毫无错误地构建和发布。 这是我的构建管道:

trigger:
- master

pool:
  name: 'Default_Win2019'

variables:
  solution: '**/MyWebbApp.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1
  inputs:
    versionSpec: '5.x'

- task: UseDotNet@2
  displayName: 'Use .NET Core sdk 5.0.103'
  inputs:
    packageType: 'sdk'
    version: '5.0.103'
    includePreviewVersions: true

- task: DotNetCoreCLI@2
  displayName: 'dotnet restore'
  inputs:
    command: restore
    projects: '**/*.csproj'

- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '$(solution)'
    feedsToUse: 'select'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: PublishSymbols@2
  displayName: 'Publish symbols path'
  inputs:
    SearchPattern: '**\bin\**\*.pdb'
    PublishSymbols: false
  continueOnError: true
  
- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'

以及发布管道:

steps:
- task: AzureRmWebAppDeployment@4
  displayName: 'Deploy Azure App Service'
  inputs:
    azureSubscription: '$(Parameters.ConnectedServiceName)'
    appType: '$(Parameters.WebAppKind)'
    WebAppName: '$(Parameters.WebAppName)'
    enableCustomDeployment: true
    ExcludeFilesFromAppDataFlag: false

我曾尝试使用 kudu 删除 C:\home\site\wwwroot 下的所有内容,但这只会导致重新部署后无法运行的 webapp。在桌面上使用 visual studio 是现在唯一可行的方法。 我对管道的理解是有限的,非常感谢收到对此的任何评论。 (经过一段时间后,在其他人的帮助下拼接在一起,然后在 SO 处拾取碎片) 当我跟随部署的(天蓝色管道)工件回到提交时,我可以看到代码中的更改。 如果有人知道如何处理这个...?

终于解决了。有几个问题(至少)。

  1. 构建代理的版本早于 2.181(根据 this 是第一个与 .NET 5 兼容的版本)
  2. 我必须使用 DotnetCoreCLI 来构建和发布。我的构建管道现在看起来像这样(在 的帮助下):
    trigger:
    - master
    
    pool:
      name: 'Default_Win2019'
    
    variables:
      project: '**/MyWebbApp.Server.csproj'
      buildPlatform: 'Any CPU'
      buildConfiguration: 'Release'
    
    steps:
    
    - task: UseDotNet@2
      displayName: 'Use .NET Core sdk 5.0.x'
      inputs:
        packageType: 'sdk'
        version: '5.0.x'
        includePreviewVersions: true
    
    - task: DotNetCoreCLI@2
      displayName: 'dotnet restore'
      inputs:
        command: restore
        projects: '**/*.csproj'
    
    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'
        projects: '$(project)'
        arguments: '--configuration $(BuildConfiguration)'
    
    - task: VSTest@2
      inputs:
        platform: '$(buildPlatform)'
        configuration: '$(buildConfiguration)'
    
    - task: PublishSymbols@2
      displayName: 'Publish symbols path'
      inputs:
        SearchPattern: '**\bin\**\*.pdb'
        PublishSymbols: false
      continueOnError: true
    
    - task: DotNetCoreCLI@2
      displayName: Publish
      inputs:
        command: 'publish'
        publishWebProjects: false
        projects: '$(project)'
        arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
    
    - task: PublishBuildArtifacts@1
      displayName: 'Publish Artifact: drop'
      inputs:
        PathtoPublish: '$(build.artifactstagingdirectory)'