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.
Puede crear aplicaciones de consola que usen características de SDK de Aplicaciones para Windows, como la administración del ciclo de vida de las aplicaciones, la activación enriquecida, las notificaciones push, etc. A diferencia de las aplicaciones de consola de UWP (que requieren plantillas especiales y C++/WinRT), las aplicaciones de consola de escritorio usan tipos de proyecto estándar .NET o C++.
Creación de una aplicación de consola con SDK de Aplicaciones para Windows
Paso 1: Crear un proyecto de consola de .NET
Use la plantilla de aplicación de consola de .NET estándar:
dotnet new console -n MyConsoleApp
cd MyConsoleApp
Paso 2: Agregar el paquete NuGet de SDK de Aplicaciones para Windows
dotnet add package Microsoft.WindowsAppSDK
Paso 3: Uso de las API de SDK de Aplicaciones para Windows
using Microsoft.Windows.AppLifecycle;
class Program
{
static async Task Main(string[] args)
{
Console.WriteLine("Console app with Windows App SDK");
// Check activation kind
var activatedArgs = AppInstance.GetCurrent().GetActivatedEventArgs();
Console.WriteLine($"Activation kind: {activatedArgs.Kind}");
// Use single-instance pattern
var instance = AppInstance.FindOrRegisterForKey("my-console-app");
if (!instance.IsCurrent)
{
Console.WriteLine("Another instance is running. Redirecting...");
await instance.RedirectActivationToAsync(activatedArgs);
return;
}
// Your app logic here
Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
}
}
Identidad del paquete para aplicaciones de consola
Algunas características de SDK de Aplicaciones para Windows requieren la identidad del paquete MSIX. Puede proporcionar la identidad del paquete de la aplicación de consola de dos maneras:
- Paquete como MSIX: cree un Windows Application Packaging Project y agregue la aplicación de consola como referencia.
- Usar identidad externa : registre un paquete disperso para la identidad sin empaquetado MSIX completo.
Note
Las características como las notificaciones push, las tareas en segundo plano y los servicios de aplicaciones requieren la identidad del paquete. Las API básicas de ciclo de vida y activación funcionan sin empaquetar.
Diferencias con las aplicaciones de consola de UWP
| Feature | Aplicaciones de consola para UWP | Aplicaciones de consola de escritorio |
|---|---|---|
| Compatibilidad con idiomas | Solo C++/WinRT y C++/CX | C#, C++y cualquier lenguaje de .NET |
| plantilla de Project | Plantilla especial de consola para UWP (VS 2017/2019) | Consola de .NET estándar o Win32 |
| Requisito de manifiesto | desktop4:Subsystem="console" |
No es necesario |
| Activation |
AppExecutionAlias en manifiesto |
Línea de comandos estándar o activación enriquecida |
| Integración del SDK | Limitado a las API de WinRT | Acceso completo SDK de Aplicaciones para Windows |
Importante
Las aplicaciones de consola de UWP requieren plantillas de Visual Studio especiales que ya no se mantienen activamente. Para las nuevas aplicaciones de consola, use un proyecto de consola de .NET estándar con el paquete NuGet SDK de Aplicaciones para Windows.
Escenarios comunes
Herramientas de línea de comandos con integración de Windows
Cree herramientas de la CLI que se integren con las características de Windows:
using Microsoft.Windows.AppNotifications;
// Send a notification from a console app (requires package identity)
var builder = new AppNotificationBuilder()
.AddText("Build complete")
.AddText("Your project built successfully.");
AppNotificationManager.Default.Show(builder.BuildNotification());
Procesamiento en segundo plano
Las aplicaciones de consola funcionan bien para las tareas de procesamiento en segundo plano:
- Utilidades de importación y exportación de datos
- Supervisores de archivos y procesadores
- Ejecutables de tareas programadas
- Herramientas para desarrolladores y scripts de automatización