当前使用托管在 VM 规模集中的代理池进行 .Net 部署。将代码库升级到 .NET 8 我在 msbuild 步骤中收到以下错误:
错误:.NET SDK 版本 8.0.405 至少需要 MSBuild 版本 17.8.3
我已将规模集中的实例更新为最新版本,并添加了“使用 Dot Net Core”步骤来指定 .NET 8。我仍然收到错误。管道 yaml 是:
pool:
name: <<Pool Name>>
demands: msbuild
variables:
vsVersion: '17.0'
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk 8.0.x'
inputs:
version: 8.0.x
includePreviewVersions: true
- task: ms.advancedsecurity-tasks.codeql.init.AdvancedSecurity-Codeql-Init@1
displayName: 'Initialize CodeQL'
inputs:
enableAutomaticCodeQLInstall: true
languages: csharp
querysuite: 'security-and-quality'
- task: MSBuild@1
displayName: 'Build solution **/*.sln'
inputs:
msbuildArchitecture: x64
restoreNugetPackages: true
- task: ms.advancedsecurity-tasks.codeql.analyze.AdvancedSecurity-Codeql-Analyze@1
displayName: 'Perform CodeQL analysis'
inputs:
WaitForProcessing: true
错误:.NET SDK 版本 8.0.405 至少需要 MSBuild 版本 17.8.3
该错误表明代理上的 Visual studio 版本较旧,您需要代理上的 Visual studio 2022,它具有更高的 MSbuild 版本,满足 SDK 要求。
由于您使用的是 VM 规模池,因此您可以更新池基础映像以安装 VS2022。您可能需要重新创建 DevOps 池,以便新代理默认情况下会自动拥有新的 VS2022。
如果您仅在当前代理实例上升级(安装 VS2022),它不会传播到其他代理,并且当前代理可以在一个管道后重新映像。
您可以查看类似的票证供您参考,它使用了MS托管的代理,但错误和解决方案是相同的。