Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.