Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以使编译器警告报告在MS build engine的不同版本之间保持一致?_C#_Visual Studio_Msbuild_Roslyn_Compiler Warnings - Fatal编程技术网

C# 是否可以使编译器警告报告在MS build engine的不同版本之间保持一致?

C# 是否可以使编译器警告报告在MS build engine的不同版本之间保持一致?,c#,visual-studio,msbuild,roslyn,compiler-warnings,C#,Visual Studio,Msbuild,Roslyn,Compiler Warnings,我有一个以.NET Core 3.1为目标的C#项目,我解决了所有编译器警告,并将treatwarningaserrors设置为true。它可以从VisualStudio和命令行正常构建 但是,生成服务器上的生成失败,并将其中一个警告报告为错误:CS8625。我能发现的唯一区别是MS build engine的版本: 16.8.3本地 16.7.2在生成服务器上 我没有在发行说明中找到明确的信息,但我的直觉是,上述版本之间的更改是此类行为的根本原因 显然,我可以禁用.editorconfig

我有一个以.NET Core 3.1为目标的C#项目,我解决了所有编译器警告,并将
treatwarningaserrors
设置为
true
。它可以从VisualStudio和命令行正常构建

但是,生成服务器上的生成失败,并将其中一个警告报告为错误:CS8625。我能发现的唯一区别是MS build engine的版本:

  • 16.8.3本地
  • 16.7.2在生成服务器上
我没有在发行说明中找到明确的信息,但我的直觉是,上述版本之间的更改是此类行为的根本原因

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


是否可以设置警告的报告方式,而不考虑生成引擎版本?

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


请参见此处的示例:

与什么一致?我认为唯一可行的方法是使用一个标志,强制更新版本使用与旧版本相同的警告规则。但是,您可能会错过对警告的任何改进。似乎更容易的解决办法是在任何地方都使用相同的版本。另外,我希望生成警告的是c#编译器csc.exe,而不是MSBuild,但它们可能是同一安装的一部分。能否显示该警告的一两个代码示例和完整消息?它也可能是Roslyn的一个版本,与MSBuild无关。MSBuild和Roslyn都发展迅速,因此很难期望它们的行为在所有版本中都是相同的。您可以临时修复或忽略该警告,以便CI在更新为较新的MSBuild之前通过。请看这里的例子:@KirillOsenkov谢谢,这就是我在与团队成员讨论后所做的。你能把你的评论塑造成一个答案吗?因为这是一个非常可行的方法,可能会帮助其他面临类似问题的人?