Конвейер 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'