У меня есть проект Blazor WebAssemby, который для целей этого примера использует шаблон по умолчанию для проектов WebAssembly на Blazor. У меня есть код, зарегистрированный в моей учетной записи DevOps, и я использую следующие настройки для моей задачи сборки:
- task: VSBuild@1
inputs:
solution: '**/*.sln'
msbuildArgs: '/p:WebPublishMethod=FileSystem'
platform: 'Any CPU'
configuration: 'Release'
Когда я публикую sh это локально, используя 'FileSystem' Я использую my '/ bin / Release / netstandard2.1 / wwwroot/' папка набор файлов, которые я могу скопировать на веб-сайт stati c для запуска, который включает индекс '. html ', ' appsettings. json ', моя ' css ' папка, а также папка ' _ framework '.
При работе в DevOps сборка создает только папку '_ framework' в '/ bin / Release / netstandard2.1 / wwwroot/' но есть все остальные необходимые файлы.
После некоторой игры с аргументами сборки я заметил, что папка '/ obj / Release / netstandard2.1 / PubTmp / Out / wwwroot/' содержит все файлы. Есть ли причина для такого поведения? Насколько я понимаю, папка obj предназначена только для временных ресурсов сборки и не должна использоваться для развертывания. Есть ли дополнительные аргументы сборки, которые мне не хватает? Я пробовал несколько вариантов, включая метод 'Package' publi sh, но все равно не повезло.
Мой план - запустить 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'