Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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
Дополнительные сведения см. в разделе "Подавление предупреждений анализа кода".