CA2266: O ponto de entrada do programa baseado em arquivo deve começar com #!

Property Valor
ID da regra CA2266
Título O ponto de entrada do programa baseado em arquivo deve começar com #!
Categoria Usage
Correção interruptiva ou sem interrupção Non-breaking
Habilitado por padrão no .NET 10 Como aviso
Idiomas aplicáveis C#

Cause

Seu arquivo de ponto de entrada em um programa baseado em arquivos com múltiplos arquivos não começa com uma linha shebang (#!).

Descrição da regra

Para a identificação correta da ferramenta e o suporte à execução direta no shell, inicie o arquivo de ponto de entrada com uma linha shebang (#!) para distingui-lo claramente dos arquivos incluídos em #:include ou #:ref.

Como corrigir violações

Adicione uma linha shebang ao início do arquivo de ponto de entrada, por exemplo, #!/usr/bin/env dotnet.

Example

O snippet de código a seguir mostra uma violação do CA2266.

Em app.cs:

#:include "helpers.cs"

Console.WriteLine(GetMessage());

Em helpers.cs:

string GetMessage() => "Hello";

O snippet de código a seguir corrige a violação.

Em app.cs:

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

Console.WriteLine(GetMessage());

Em helpers.cs:

string GetMessage() => "Hello";

Quando suprimir avisos

Se você intencionalmente omitir a linha shebang e tiver confirmado que suas ferramentas ainda podem identificar o ponto de entrada corretamente, é seguro suprimir esse aviso.

Suprimir um aviso

Para aplicativos baseados em arquivo, suprime uma única violação adicionando uma #:property diretiva ao arquivo de ponto de entrada.

#:property NoWarn=$(NoWarn);CA2266

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

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

Para obter mais informações, consulte Como suprimir avisos de análise de código.

Consulte também

Aplicativos baseados em arquivo