Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.