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 seguimiento CodeQL inserta algunas marcas en la invocación del compilador de C# para asegurarse de que todos los componentes se compilan e incluyen en la base de datos de CodeQL, lo que puede hacer que el código de C# se compile de forma diferente a lo que espera durante el análisis de CodeQL. Consulte "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 insertada 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, consulte "Descripción del archivo de proyecto" en Microsoft Learn.