关于这些错误
CodeQL 跟踪器将某些标志注入 C# 编译器调用中,以确保每个组件都已生成并包含在 CodeQL 数据库中,这可能会导致 C# 代码在 CodeQL 分析期间以与预期不同的方式生成。 请参阅“对编译语言进行 CodeQL 代码扫描”。
/p:EmitCompilerGeneratedFiles=true
是注入的属性之一,并在生成过程中发出编译器生成的文件。 此选项会导致编译器生成其他文件,用于支持改进的正则表达式支持、序列化和 Web 应用程序视图生成等功能。 这些生成的项目通常不会被编译器写入磁盘,但是将选项设置为 true
会强制将文件写入磁盘,这样提取程序就可以处理这些文件。
对于某些旧项目以及使用 .sqlproj
文件的项目,可能会发现注入的 /p:EmitCompilerGeneratedFiles=true
属性导致 msbuild
出现意外问题。
确认问题原因
如果已设置“将警告视为错误”标志,则 msbuild
会产生错误,从而导致提取失败。
修复问题
应将 <CompilerGeneratedFilesOutputPath>
元素添加到应用程序的项目文件中。 有关详细信息,请参阅 Microsoft Learn 中的“了解项目文件”。