本地构建正常但Azure DevOps报IDE0055错误的解决方案咨询
问题:Azure DevOps构建因旧MSBuild版本报IDE0055格式错误
项目配置
项目中使用以下.csproj特性:
<EnableNETAnalyzers>true</EnableNETAnalyzers> <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
问题现象
本地构建完全正常:出现警告时无法构建,代码格式不符合标准时也无法构建。但Azure DevOps构建失败,针对链式方法的行内注释报IDE0055错误,示例代码如下:
var list = new List<string>(); var cleanList = list // 忽略空字符串 .Where(l => l.Length == 0) // 忽略过长字符串 .Where(l => l.Length > 10) .ToList();
环境差异
- 本地:Windows系统,MSBuild版本17.4.0+18d5aef85 for .NET
- DevOps:Linux系统,Build Engine版本17.1.1+a02f73656 for .NET
DevOps构建完整输出
Starting: Build projects ============================================================================== Task : .NET Core Description : Build, test, package, or publish a dotnet application, or run a custom dotnet command Version : 2.210.0 Author : Microsoft Corporation Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/dotnet-core-cli ============================================================================== Info: .NET Core SDK/runtime 2.2 and 3.0 are now End of Life(EOL) and have been removed from all hosted agents. If you're using these SDK/runtimes on hosted agents, kindly upgrade to newer versions which are not EOL, or else use UseDotNet task to install the required version. /opt/hostedtoolcache/dotnet/dotnet build /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj -dl:CentralLogger,"/home/vsts/work/_tasks/DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b/2.210.0/dotnet-build-helpers/Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll"*ForwardingLogger,"/home/vsts/work/_tasks/DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b/2.210.0/dotnet-build-helpers/Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" -c Release -r linux-x64 -p:PublishReadyToRun=true Microsoft (R) Build Engine version 17.1.1+a02f73656 for .NET Copyright (C) Microsoft Corporation. All rights reserved. Determining projects to restore... Restored /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj (in 367 ms). ##[error]Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(22,33): Error IDE0055: Fix formatting /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(22,33): error IDE0055: Fix formatting [/home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj] ##[error]Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(23,46): Error IDE0055: Fix formatting /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(23,46): error IDE0055: Fix formatting [/home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj] ##[error]Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(24,43): Error IDE0055: Fix formatting /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(24,43): error IDE0055: Fix formatting [/home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj] ##[error]Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(25,43): Error IDE0055: Fix formatting /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(25,43): error IDE0055: Fix formatting [/home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj] Build FAILED. /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(22,33): error IDE0055: Fix formatting [/home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj] /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(23,46): error IDE0055: Fix formatting [/home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj] /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(24,43): error IDE0055: Fix formatting [/home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj] /home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/AdjustEmployeeScheduleRequest.cs(25,43): error IDE0055: Fix formatting [/home/vsts/work/1/s/Psrm.ScheduleCalculator.Contract/Psrm.ScheduleCalculator.Contract.csproj] 0 Warning(s) 4 Error(s) Time Elapsed 00:00:03.50 ##[error]Error: The process '/opt/hostedtoolcache/dotnet/dotnet' failed with exit code 1 /opt/hostedtoolcache/dotnet/dotnet build /home/vsts/work/1/s/Psrm.ScheduleCalculator.InternalContract/Psrm.ScheduleCalculator.InternalContract.csproj -dl:CentralLogger,"/home/vsts/work/_tasks/DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b/2.210.0/dotnet-build-helpers/Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll"*ForwardingLogger,"/home/vsts/work/_tasks/DotNetCoreCLI_5541a522-603c-47ad-91fc-a4b1d163081b/2.210.0/dotnet-build-helpers/Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" -c Release -r linux-x64 -p:PublishReadyToRun=true
疑问
推测是旧版本构建引擎导致的问题,能否指定其他构建引擎?希望不要绑定UseDotNet@2的packageType,因为需要设置为6.0.202以适配AWS Lambda。
内容的提问来源于stack exchange,提问作者Langdon
相关产品推荐
相关产品推荐

