Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2024-09-25. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Непредвиденное сбой компилятора C#

Если компиляция MSBuild C# неожиданно завершается ошибкой, может потребоваться изменить файл проекта приложения.

Об этих ошибках

Трассировщик трассировки CodeQL внедряет некоторые флаги в вызов компилятора C#, чтобы гарантировать, что каждый компонент построен и включен в базу данных CodeQL, что может привести к созданию кода C# по-разному, что ожидается во время анализа CodeQL. См . раздел AUTOTITLE.

/p:EmitCompilerGeneratedFiles=true является одним из внедренных свойств и выдает созданные компилятором файлы во время процесса сборки. Этот параметр приводит к созданию дополнительных файлов компилятора, которые используются для поддержки таких функций, как улучшенная поддержка регулярных выражений, сериализация и создание представления веб-приложения. Эти созданные артефакты обычно не записываются на диск компилятором, но настраивают параметр принудительной true записи файлов на диск, и поэтому средство извлечения может обрабатывать файлы.

Для некоторых устаревших проектов и проектов, использующих .sqlproj файлы, можно увидеть, что внедренное /p:EmitCompilerGeneratedFiles=true свойство приводит к непредвиденным проблемам msbuild.

Подтверждение причины проблемы

Если вы задали флаг "обрабатывать предупреждения как ошибки", msbuild будет возникать ошибка, которая приведет к сбою извлечения.

Устранение проблемы

Необходимо добавить элемент в <CompilerGeneratedFilesOutputPath> файл проекта приложения. Дополнительные сведения см. в разделе "Общие сведения о файле проекта" в Microsoft Learn.