是否可以使编译器警告报告在不同版本的 MS 构建引擎之间保持一致?

Is it possible to make the compiler warnings reporting consistent between different versions of MS build engine?

我有一个针对 .NET Core 3.1 的 C# 项目,我在其中解决了所有编译器警告并将 TreatWarningsAsErrors 设置为 true。它从 Visual Studio 和命令行构建得很好。

但是,构建服务器上的构建失败并将警告之一报告为错误:CS8625。我能发现的唯一区别是 MS 构建引擎的版本:

我未能在发行说明中找到明确的信息,但我的直觉是,上述版本之间的变化是造成此类行为的根本原因。

显然,我可以在 .editorconfig 文件中禁用提到的警告,它不会在本地和构建服务器上报告,但我更希望它以相反的方式运行。

是否可以在不考虑构建引擎版本的情况下设置警告的报告方式?

它也可能是 Roslyn 的一个版本,与 MSBuild 无关。 MSBuild 和 Roslyn 都在迅速发展,因此很难期望它们的行为在所有版本中都相同。您可以暂时修复或忽略该警告,以便您的 CI 通过,直到它更新到更新的 MSBuild。

示例见此处:https://github.com/dotnet/roslyn/issues/39906