CA2266: El punto de entrada del programa basado en archivos debe comenzar con #!

Propiedad Value
Identificador de la regla CA2266
Title El punto de entrada del programa basado en archivos debe comenzar por #!
Category Uso
La corrección es problemática o no problemática Non-breaking
Habilitado de forma predeterminada en .NET 10 Como advertencia
Idiomas aplicables C#

Causa

Su archivo de punto de entrada en un programa basado en archivos múltiples no comienza con una línea shebang (#!).

Descripción de la regla

Para obtener la identificación correcta de la herramienta y la compatibilidad con la ejecución directa del shell, inicie el archivo de punto de entrada con una línea shebang (#!) para distinguirlo claramente de los archivos que se incluyen con #:include o #:ref.

Cómo corregir infracciones

Agregue una línea shebang al principio del archivo de punto de entrada, por ejemplo, #!/usr/bin/env dotnet.

Ejemplo

El siguiente fragmento de código muestra una infracción de CA2266.

En app.cs:

#:include "helpers.cs"

Console.WriteLine(GetMessage());

En helpers.cs:

string GetMessage() => "Hello";

El siguiente fragmento de código corrige la infracción.

En app.cs:

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

Console.WriteLine(GetMessage());

En helpers.cs:

string GetMessage() => "Hello";

Cuándo suprimir las advertencias

Si ha omitido intencionadamente la línea de shebang y ha confirmado que sus herramientas pueden seguir identificando correctamente el punto de entrada, puede suprimir esta advertencia con seguridad.

Supresión de una advertencia

En el caso de las aplicaciones basadas en archivos, suprima una única infracción agregando una #:property directiva al archivo de punto de entrada.

#:property NoWarn=$(NoWarn);CA2266

Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad a none en el archivo de configuración.

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

Para obtener más información, consulte Cómo suprimir advertencias de análisis de código.

Consulte también

Aplicaciones basadas en archivos