Конвейер YAML для сборки статического сайта Blazor WebAssembly

У меня есть проект Blazor WebAssemby, который для целей этого примера использует шаблон по умолчанию для проектов WebAssembly на Blazor. У меня есть код, зарегистрированный в моей учетной записи DevOps, и я использую следующие настройки для моей задачи сборки:

- task: VSBuild@1
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:WebPublishMethod=FileSystem'
    platform: 'Any CPU'
    configuration: 'Release'

Когда я публикую этот локально с помощью "FileSystem" у меня в "/bin/Release/netstandard2.1/wwwroot/" папки набора файлов, которые можно скопировать на статический веб - сайт для запуска, который включает в себя "index.html", ' appsettings.json ', мою папку ' css ', а также папку '_framework'.

При работе в DevOps сборки производит только "_framework" папку в "/bin/Release/netstandard2.1/wwwroot/", но есть все другие необходимые файлы.

После некоторой игры с аргументами сборки я заметил, что папка '/obj/Release/netstandard2.1/PubTmp/Out/wwwroot/' действительно содержит все файлы. Есть ли причина для такого поведения? Насколько я понимаю, папка obj предназначена только для временных ресурсов сборки и не должна использоваться для развертывания. Есть ли дополнительные аргументы, которые мне не хватает? Я пробовал несколько вариантов, включая метод публикации "Пакет", но все равно не повезло.

Я планирую запустить AzureFileCopy после того, как ресурсы окажутся в папке /bin/Release/netstandard2.1/wwwroot/. Может, есть способ лучше с этим справиться? Вот полный файл YAML:

variables:
  azureSubscription: '[SUBSCRIPTIONNAME]'
  storageName: '[STORAGENAME]'

trigger:
- master

pool:
  vmImage: 'windows-latest'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:WebPublishMethod=FileSystem'
    platform: 'Any CPU'
    configuration: 'Release'

- task: AzureFileCopy@4
  inputs:
    SourcePath: '**/bin/Release/netstandard2.1/wwwroot/*'
    azureSubscription: '$(azureSubscription)'
    Destination: 'AzureBlob'
    storage: '$(storageName)'
    ContainerName: '$web'

0 ответов

Другие вопросы по тегам