跳至主要内容

C# 编译器意外失败

如果你的 MSBuild C# 编译意外失败,可能需要修改应用程序的项目文件。

关于这些错误

CodeQL 跟踪器会向 C# 编译器调用注入一些标志,以确保每个组件都被构建并包含在 CodeQL 数据库中,这可能导致在 CodeQL 分析期间你的 C# 代码的构建方式与预期不同。请参阅已编译语言的 CodeQL 代码扫描

/p:EmitCompilerGeneratedFiles=true 是被注入的属性之一,会在构建过程中生成编译器生成的文件。此选项会导致编译器生成额外的文件,以支持诸如改进的正则表达式支持、序列化以及 Web 应用程序视图生成等功能。这些生成的工件通常不会写入磁盘,但将该选项设置为 true 会强制将文件写入磁盘,从而使提取器能够处理这些文件。

对于一些旧项目以及使用 .sqlproj 文件的项目,你可能会发现注入的 /p:EmitCompilerGeneratedFiles=true 属性会导致 msbuild 出现意外问题。

确认问题原因

如果你已设置“将警告视为错误”标志,则 msbuild 将会产生错误,从而导致提取失败。

解决问题

你应该在应用程序的项目文件中添加 <CompilerGeneratedFilesOutputPath> 元素。有关更多信息,请参阅了解项目文件

© . This site is unofficial and not affiliated with GitHub, Inc.