Skip to main content

Échec inattendu du compilateur C#

Si votre compilation MSBuild C# Ă©choue de façon inattendue, vous devrez peut-ĂȘtre modifier le fichier projet de votre application.

À propos de ces erreurs

Le traceur CodeQL injecte certains indicateurs dans l’appel du compilateur C# pour vous assurer que chaque composant est gĂ©nĂ©rĂ© et inclus dans la base de donnĂ©es CodeQL. En consĂ©quence, votre code C# peut ĂȘtre gĂ©nĂ©rĂ© d’une maniĂšre diffĂ©rente de vos attentes pendant l’analyse CodeQL. Consultez Analyse du code CodeQL pour les langages compilĂ©s.

/p:EmitCompilerGeneratedFiles=true est l’une des propriĂ©tĂ©s injectĂ©es et Ă©met des fichiers gĂ©nĂ©rĂ©s par le compilateur pendant le processus de gĂ©nĂ©ration. Cette option permet au compilateur de gĂ©nĂ©rer des fichiers supplĂ©mentaires, utilisĂ©s pour prendre en charge des fonctionnalitĂ©s telles que la prise en charge amĂ©liorĂ©e des expressions rĂ©guliĂšres, la sĂ©rialisation et la gĂ©nĂ©ration de vues d’applications web. Ces artefacts gĂ©nĂ©rĂ©s ne sont gĂ©nĂ©ralement pas Ă©crits sur le disque par le compilateur, mais rĂšglent l’option sur true pour forcer l’écriture des fichiers sur disque, pour que l’extracteur puisse traiter les fichiers.

Pour certains projets hérités et les projets qui utilisent des fichiers .sqlproj, vous pouvez voir que la propriété /p:EmitCompilerGeneratedFiles=true injectée provoque des problÚmes inattendus avec msbuild.

Confirmation de la cause du problĂšme

Si vous avez dĂ©fini l’indicateur « Traiter les avertissements comme des erreurs Â», msbuild produira une erreur, ce qui entraĂźnera l’échec de l’extraction.

Résolution du problÚme

Vous devez ajouter l’élĂ©ment <CompilerGeneratedFilesOutputPath> au fichier projet de l’application. Pour plus d’informations, consultez ComprĂ©hension du fichier de projet dans Microsoft Learn.