如何在Azure Pipeline Windows环境中安装.msi格式程序(以CppCheck为例)
适配Windows镜像的Azure Pipelines CppCheck安装方案
核心实现可直接使用Windows系统自带的PowerShell命令完成msi安装包的下载与静默安装,无需预装额外工具,具体配置如下:
完整流水线配置
trigger: - master pool: vmImage: 'windows-2019' jobs: - job: MisraCheck displayName: Check for Misra Compliance steps: - powershell: | # 替换为你获取到的对应版本CppCheck的官方msi下载地址 $cppcheckUrl = "<替换为你的CppCheck msi安装包下载链接>" $installerPath = "$env:TEMP\cppcheck-installer.msi" # 下载安装包到临时目录 Invoke-WebRequest -Uri $cppcheckUrl -OutFile $installerPath # 执行静默安装,无弹窗无交互 Start-Process msiexec.exe -ArgumentList "/i $installerPath /qn /norestart" -Wait # 将CppCheck默认安装路径添加到流水线环境变量,后续步骤可直接调用cppcheck命令 echo "##vso[task.prependpath]C:\Program Files\Cppcheck" displayName: 'Install CppCheck' - script: | cppcheck --error-exitcode=1 --addon=misra.json . displayName: 'Run cppcheck'
关键逻辑说明
Invoke-WebRequest是PowerShell自带的文件下载工具,可替代Linux下的wget/curl功能,直接拉取远程安装包msiexec是Windows自带的MSI安装包管理工具,参数说明:/i指定需要安装的msi包路径/qn配置为完全静默安装模式,无任何界面弹窗,适配流水线非交互运行场景/norestart配置安装完成后不触发系统重启
echo "##vso[task.prependpath]路径"是Azure Pipelines专用的环境变量注入命令,将CppCheck安装路径添加到任务全局PATH中,后续步骤无需写全路径即可直接调用cppcheck命令
如果你需要安装指定版本的CppCheck,仅需替换配置中的msi下载链接即可,其余逻辑无需调整。
内容的提问来源于stack exchange,提问作者Rafael Nicolay
相关产品推荐
相关产品推荐

