CA2266: O ponto de entrada de programas baseado em ficheiros deve começar por #!

Property Value
ID da regra CA2266
Título O ponto de entrada de programas baseado em ficheiros deve começar por #!
Categoria Usage
A correção é invasiva ou não invasiva Non-breaking
Habilitado por padrão no .NET 10 Como aviso
Línguas aplicáveis C#

Motivo

O teu ficheiro de entrada num programa baseado em ficheiros múltiplos não começa com uma linha shebang (#!).

Descrição da regra

Para uma identificação correta da ferramenta e para suporte à execução direta na shell, inicie o ficheiro de ponto de entrada com uma linha shebang (#!) para o distinguir claramente de ficheiros incluídos com #:include.

Como corrigir violações

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

Example

O seguinte excerto de código mostra uma violação do CA2266.

Em app.cs:

#:include "helpers.cs"

Console.WriteLine(GetMessage());

Em helpers.cs:

string GetMessage() => "Hello";

O seguinte excerto de código 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 omitir intencionalmente a linha shebang e confirmar que a sua ferramenta ainda consegue identificar corretamente o ponto de entrada, é seguro suprimir este aviso.

Suprimir um aviso

Para aplicações baseadas em ficheiros, suprima uma única violação adicionando uma #:property diretiva ao ficheiro do ponto de entrada.

#:property NoWarn=$(NoWarn);CA2266

Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade 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.

Ver também

Aplicações baseadas em ficheiros