Skip to main content

Errores inesperados del compilador de C#

Si se producen errores inesperados en la compilación de C# de MSBuild, es posible que tenga que modificar el archivo de proyecto de la aplicación.

Acerca de estos errores

El trazador CodeQL inserta algunas banderas en la invocación del compilador de C# para garantizar que todos los componentes se compilen e incluyan en la base de datos CodeQL, lo que puede provocar que su código C# se construya de manera diferente a lo esperado durante el análisis de CodeQL. Consulta Análisis de código de CodeQL para lenguajes compilados.

          `/p:EmitCompilerGeneratedFiles=true` es una de las propiedades insertadas y emite archivos generados por el compilador durante el proceso de compilación. Esta opción hace que el compilador genere archivos adicionales que se usan para admitir características como compatibilidad mejorada con expresiones regulares, serialización y generación de vistas de aplicaciones web. Normalmente el compilador no escribe estos artefactos generados en el disco, sino que establecer la opción en `true` fuerza la escritura de los archivos en el disco, por lo que el extractor puede procesar los archivos.

Para algunos proyectos antiguos y proyectos que usan archivos .sqlproj, es posible que vea que la propiedad /p:EmitCompilerGeneratedFiles=true inyectada provoca problemas inesperados con msbuild.

Confirmación de la causa del problema

Si ha establecido la marca "tratar las advertencias como errores", msbuild generará un error, lo que hará que se produzca un error en la extracción.

Solución del problema

Debe agregar el elemento <CompilerGeneratedFilesOutputPath> al archivo de proyecto de la aplicación. Para obtener más información, consulta Descripción del archivo de proyecto en Microsoft Learn.