CA2266: Точка входа программы на основе файла должна начинаться с #!

Property Ценность
Идентификатор правила CA2266
Заголовок Точка входа программы в файле должна начинаться с #!
Категория Использование
Исправление является разрушающим или неразрушающим Non-breaking
Включен по умолчанию в .NET 10 Как предупреждение
Применимые языки C#

Причина

Файл точки входа в программе, состоящей из нескольких файлов, не начинается со строки shebang (#!).

Описание правила

Для правильной идентификации средства и поддержки прямого выполнения оболочки запустите файл точки входа с строкой shebang (#!), чтобы четко отличить его от файлов, с которыми он был доставлен #:include или #:ref.

Устранение нарушений

Добавьте строку shebang в начало файла точки входа, например #!/usr/bin/env dotnet.

Example

В следующем фрагменте кода показано нарушение CA2266.

В app.cs:

#:include "helpers.cs"

Console.WriteLine(GetMessage());

В helpers.cs:

string GetMessage() => "Hello";

В следующем фрагменте кода исправлено нарушение.

В app.cs:

#!/usr/bin/env dotnet
#:include "helpers.cs"

Console.WriteLine(GetMessage());

В helpers.cs:

string GetMessage() => "Hello";

Когда следует подавлять предупреждения

Если вы намеренно пропускаете строку shebang и подтвердили, что ваши инструменты по-прежнему способны правильно определить точку входа, это предупреждение можно отключить.

Отключение предупреждений

Для приложений на основе файловой системы можно подавить отдельное нарушение, добавив директиву #:property в файл с точкой входа.

#:property NoWarn=$(NoWarn);CA2266

Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.

[*.cs]
dotnet_diagnostic.CA2266.severity = none

Дополнительные сведения см. в разделе "Подавление предупреждений анализа кода".

См. также

Приложения на основе файлов