У меня есть проект C ++ с зависимостями cpprestsdk и libpqxx, и я использую vcpkg в качестве менеджера пакетов.
Я создал конвейер Azure DevOps, который использует CppBuildTask Задача клонировать и построить зависимости из vcpkg, это работает правильно, и все зависимости извлекаются и создаются успешно, но я не уверен, как на самом деле построить проект с использованием файла * .vcxproj.
Я пытался использовать задачу сборки Visual Studio, но сборка не удалась, потому что не удалось найти зависимости, которые были только что загружены CppBuildTask.
Какую правильную задачу использовать при попытке создать MSVC ++ проект с vcpkg на Azure DevOps?
Редактировать, файл конвейерного yaml:
pool:
name: Azure Pipelines
demands:
- msbuild
- visualstudio
steps:
- task: Cache@2
displayName: Cache
inputs:
key: '$(Build.SourcesDirectory)/response_file.txt | 5951e0b42569257f97a5d9ac2d8c5bd4942c417b | x64-windows'
path: '$(Build.SourcesDirectory)/vcpkg'
- task: lucappa.cmake-ninja-vcpkg-tasks.d855c326-b1c0-4d6f-b1c7-440ade6835fb.run-vcpkg@0
displayName: 'Run vcpkg'
inputs:
vcpkgDirectory: '$(Build.SourcesDirectory)/vcpkg'
vcpkgGitCommitId: 5951e0b42569257f97a5d9ac2d8c5bd4942c417b
vcpkgArguments: '@$(Build.SourcesDirectory)/response_file.txt'
cleanAfterBuild: false
- task: VSBuild@1
displayName: 'Build solution TileServer\TileServer.vcxproj'
inputs:
solution: '$(Parameters.solution)'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArchitecture: x64
- task: PublishSymbols@2
displayName: 'Publish symbols path'
inputs:
SearchPattern: '**\bin\**\*.pdb'
IndexSources: false
PublishSymbols: false
continueOnError: true
- task: CopyFiles@2
displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
inputs:
Contents: |
**\bin\$(BuildConfiguration)\**
.\Renderer\Styles\Themes\DefaultTheme.json
.\TileServer\glew32.dll
.\TileServer\ReleaseSettings.json
TargetFolder: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: TileServer
condition: succeededOrFailed()