質問: AzureDevOpsのBuildでOpenCVを含んだプロジェクトのビルドを行うにはどうすればよいでしょうか? C#+CLI/C++のデスクトップアプリケーションの開発を行っており、ソース管理などの都合からAzureDevOpsを利用しようと考えています。 対象のアプリケーションはOpenCVの機能を利用していて、ライブラリやヘッダファイルを参照しています。 OpenCVは自環境に合わせて独自ビルドしたヘッダファイル、lib、dllの3点になります。 ローカルビルドでは、VisualStudioの設定でインクルードパスやライブラリパスの追加をしていますが、AzureDevOpsではどのようにすればよいでしょうか? 開発環境 VisualStudio 2015 OpenCV version 3.4.3 プロジェクトのフォルダ構成は以下のとおりです。 ``` ├─include (OpenCVのヘッダファイル) ├─lib (OpenCVのlibファイル) ├─sample (処理対象画像ファイル) ├─C# App ├─Cpp App ├─CLI Wrapper └─x64 ├─Debug (Debugビルド dll+exe) └─Release (Releaseビルド dll+exe) ``` このフォルダ構成中、C# CLI C++のフォルダをgit管理下に置いています。
回答: 最もいい方法は、必要なdll/libをNuGetパッケージにすることです。Azure DevOpsにはAzure ArtifactsというプライベートNuGetサーバー機能があり、プロジェクト内で参照可能です。nuget.orgにOpenCVパッケージが公開されているので、必要なものをAzure Artifactsのupstreamソースとして使えます。 独自のラッパー部分も別レポジトリでNuGetパッケージにしてArtifacts内で管理すれば、ビルドー>artifactsへpublishという流れになります。