Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.