Un REPL de C# multiplataforma para la línea de comandos, con resaltado de sintaxis, IntelliSense, instalación de paquetes NuGet y conexión a procesos en ejecución.
Cysharp/ConsoleAppFramework
Framework CLI de C# sin dependencias ni asignaciones, compatible con AOT y que genera código de análisis y enrutamiento en tiempo de compilación mediante un Source Generator.
- Estrellas
- 2,234
- Forks
- 130
- Issues abiertos
- 2
- Último commit
- ayer
¿Qué es?
ConsoleAppFramework es una biblioteca de C# para crear aplicaciones de línea de comandos. En lugar de depender de atributos y reflexión en tiempo de ejecución, analiza las expresiones lambda o los métodos que se pasan a ConsoleApp.Run y genera el código de análisis de argumentos y despacho durante la compilación. El resultado es una aplicación sin dependencias del framework en tiempo de ejecución, lo que mantiene pequeño el tamaño del ensamblado y permite la compatibilidad con Native AOT.
El framework está dirigido a .NET 8 con C# 13 y admite comandos síncronos y asíncronos, comandos múltiples y anidados, y alias de comandos. De forma predeterminada, los nombres de las opciones usan lower-kebab-case, y las descripciones y los alias de las opciones se obtienen de los comentarios de documentación XML. La salida de ayuda y de versión se genera como constantes de cadena.
También incluye gestión de Ctrl+C mediante CancellationToken, pipelines de filtros (middleware), gestión del código de salida, validación con DataAnnotations, inyección de dependencias para clases de comandos, opciones globales y análisis mediante ISpanParsable<T> o JSON.
Funciones clave
- 01Genera código de análisis de argumentos y despacho de comandos en tiempo de compilación, sin dependencias en tiempo de ejecución.
- 02Admite Native AOT y evita la reflexión y el boxing.
- 03Gestiona Ctrl+C y SIGTERM mediante CancellationToken para permitir un apagado ordenado.
- 04Proporciona pipelines de filtros (middleware) alrededor de la ejecución de comandos.
- 05Genera el texto de ayuda a partir de los comentarios de documentación XML, incluidos los alias de las opciones.
- 06Admite la validación con DataAnnotations y la inyección de dependencias para clases de comandos.
Casos de uso
- Crear herramientas CLI pequeñas y de inicio rápido que deban publicarse como binarios Native AOT.
- Organizar una herramienta de línea de comandos .NET grande en comandos anidados con inyección de dependencias.
- Escribir herramientas internas de tipo batch que necesiten cancelar de forma segura con Ctrl+C tareas de larga duración.
Inicio rápido
- 1
Añade el paquete NuGet a tu proyecto
dotnet add package ConsoleAppFramework - 2
Llama a ConsoleApp.Run en Program con una lambda o un método
Antes de usarlo
- Requiere .NET 8 o posterior. En los proyectos de .NET 8, hay que establecer explícitamente la versión del lenguaje C# 13.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es ConsoleAppFramework?
- Framework CLI de C# sin dependencias ni asignaciones, compatible con AOT y que genera código de análisis y enrutamiento en tiempo de compilación mediante un Source Generator. ConsoleAppFramework es una biblioteca de C# para crear aplicaciones de línea de comandos. En lugar de depender de atributos y reflexión en tiempo de ejecución, analiza las expresiones lambda o los métodos que se pasan a ConsoleApp.Run y genera el código de análisis de argumentos y despacho durante la compilación. El resultado es una aplicación sin dependencias del framework en tiempo de ejecución, lo que mantiene pequeño el tamaño del ensamblado y permite la compatibilidad con Native AOT.
- ¿ConsoleAppFramework es gratuito? ¿Qué licencia tiene?
- ConsoleAppFramework es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿ConsoleAppFramework sigue mantenido?
- Mantenimiento activo. El último commit de ConsoleAppFramework fue el 6 nov 2026.
- ¿Para qué puedo usar ConsoleAppFramework?
- Crear herramientas CLI pequeñas y de inicio rápido que deban publicarse como binarios Native AOT. Organizar una herramienta de línea de comandos .NET grande en comandos anidados con inyección de dependencias. Escribir herramientas internas de tipo batch que necesiten cancelar de forma segura con Ctrl+C tareas de larga duración.
- ¿Cómo se instala ConsoleAppFramework?
- Añade el paquete NuGet a tu proyecto: dotnet add package ConsoleAppFramework Llama a ConsoleApp.Run en Program con una lambda o un método
- ¿Dónde consigo ConsoleAppFramework?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Cysharp/ConsoleAppFramework
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Logger de texto y estructurado sin asignaciones para .NET y Unity, basado en Microsoft.Extensions.Logging y con salida UTF8.
Compilador de C# y .NET CIL a WebAssembly, con CoreLib, runtime y SDK propios, que genera componentes WASI Preview 2 pequeños y autónomos.
Una biblioteca YAML 1.2 de alto rendimiento y baja asignación para C#, centrada en .NET y Unity, con serialización generada desde el código fuente.
Una biblioteca .NET para iniciar procesos de línea de comandos con configuración fluida, conexión de stdin/stdout/stderr y cancelación asíncrona.
FreeSql es un ORM para .NET compatible con AOT, migraciones code-first y numerosas bases de datos, como MySQL, PostgreSQL, SQL Server, Oracle, SQLite y varias bases de datos nacionales de China.