#.net #winforms #azure-devops #azure-pipelines #devops
#.net #winforms #azure-devops #azure-конвейеры #devops
Вопрос:
У меня есть приложение WinForms. Я создал конвейер сборки для того же, но не смог ничего получить в артефактах.
На самом деле мне нужна сборка проекта в архивированной папке. Любая ссылка на то же самое будет оценена.
Ниже приведен файл Yaml для конвейера.
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
ScmBuildProject: 'DemoAppForAzurePipeLine'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: $(ScmBuildName)'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: '$(ScmBuildName)'
condition: succeededOrFailed()
Ответ №1:
Предполагая, что ваш результат сборки находится здесь, $(Build.SourcesDirectory)/YourProject/bin/release/'
вы можете использовать задачу архивирования
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(Build.SourcesDirectory)/YourProject/bin/release/'
#includeRootFolder: true
#archiveType: 'zip' # Options: zip, 7z, tar, wim
#tarCompression: 'gz' # Optional. Options: gz, bz2, xz, none
#archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
#replaceExistingArchive: true
#verbose: # Optional
#quiet: # Optional
и затем он помещает его в архивный файл $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
Поместите этот шаг перед PublishBuildArtifacts
, и все должно быть в порядке. Пожалуйста, дважды проверьте свой путь вывода для ваших двоичных файлов (я имею в виду это $(Build.SourcesDirectory)/YourProject/bin/release/
)
Комментарии:
1. Thanks Krzysztof. Я могу получить желаемый результат.