如何在Azure Pipelines的windows-2019镜像中安装Windows SDK 8.1
解决Windows-2019镜像编译C++项目缺少Windows SDK 8.1问题
两种可行方案如下,按需选择即可:
方案1:流水线内静默安装Windows SDK 8.1
在原有VSBuild@1构建任务前新增PowerShell执行任务,自动下载安装对应SDK,修改后的完整steps配置如下:
steps: # 新增Windows SDK 8.1安装步骤 - task: PowerShell@2 displayName: 'Install Windows SDK 8.1' inputs: targetType: 'inline' script: | Invoke-WebRequest -Uri "https://download.microsoft.com/download/B/0/C/B0C80BA3-8AD6-4958-810B-6882485230B5/standalonesdk/sdksetup.exe" -OutFile "sdksetup.exe" -UseBasicParsing Start-Process -FilePath ".\sdksetup.exe" -ArgumentList "/q /features OptionId.WindowsDesktopSoftwareDevelopmentKit" -Wait -NoNewWindow # 原有构建、测试任务保持不变 - task: VSBuild@1 displayName: 'Build the project' inputs: solution: '$(solution)' configuration: '$(buildConfiguration)' msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(appxPackageDir)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload' - task: VSTest@2
该方案注意事项:
- 安装步骤单次耗时约2-3分钟,会延长流水线运行时长
- 流水线镜像为一次性环境,每次运行都需要重复执行安装逻辑
方案2:重定向项目目标SDK版本(无需额外安装)
如果项目没有强制依赖Windows SDK 8.1的专属特性,可直接修改项目配置适配镜像预装的SDK版本:
- 本地打开项目解决方案
- 右键点击解决方案,选择重定解决方案目标
- 在弹出的配置窗口中,将目标SDK版本替换为镜像预装的10.x版本,确认后保存修改
- 将修改后的
.vcxproj项目文件提交到代码仓库,重新运行流水线即可
内容的提问来源于stack exchange,提问作者Aritz
相关产品推荐
相关产品推荐

