Konsolappar med Windows App SDK

Du kan skapa konsolappar som använder Windows App SDK funktioner som applivscykelhantering, omfattande aktivering, push-meddelanden med mera. Till skillnad från UWP-konsolappar (som kräver särskilda mallar och C++/WinRT) använder skrivbordskonsolappar standard .NET- eller C++-projekttyper.

Skapa en konsolapp med Windows App SDK

Steg 1: Skapa ett .NET konsolprojekt

Använd standardmallen för .NET-konsolapp:

dotnet new console -n MyConsoleApp
cd MyConsoleApp

Steg 2: Lägg till NuGet-paketet för Windows App SDK

dotnet add package Microsoft.WindowsAppSDK

Steg 3: Använd Windows App SDK API:er

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();
    }
}

Paketidentitet för konsolappar

Vissa Windows App SDK funktioner kräver MSIX-paketidentitet. Du kan ge konsolappens paketidentitet på två sätt:

  • Paketera som MSIX — Skapa ett Windows-programpaketeringsprojekt och lägg till din konsolapp som en referens.
  • Använd extern identitet – Registrera ett glest paket för identitet utan fullständig MSIX-paketering.

Note

Funktioner som push-meddelanden, bakgrundsaktiviteter och apptjänster kräver paketidentitet. Grundläggande livscykel- och aktiverings-API:er fungerar utan paketering.

Skillnader från UWP-konsolappar

Feature UWP-konsolappar Skrivbordskonsolappar
Språkstöd Endast C++/WinRT och C++/CX C#, C++och alla .NET språk
Projektmall Särskild UWP-konsolmall (VS 2017/2019) Standard-.NET-konsolen eller Win32
Manifestkrav desktop4:Subsystem="console" Krävs inte
Activation AppExecutionAlias i manifestet Standardkommandorad eller omfattande aktivering
SDK-integration Begränsat till WinRT-API:er Fullständig Windows App SDK åtkomst

Important

UWP-konsolappar krävde särskilda Visual Studio mallar som inte längre underhålls aktivt. För nya konsolappar använder du ett standard-.NET-konsolprojekt med Windows App SDK NuGet-paketet.

Vanliga scenarier

Kommandoradsverktyg med Windows integrering

Skapa CLI-verktyg som integreras med Windows funktioner:

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());

Bakgrundsbearbetning

Konsolappar fungerar bra för bakgrundsbearbetningsuppgifter:

  • Verktyg för dataimport/export
  • Filbevakare och processorer
  • Körbara filer för schemalagda aktiviteter
  • utvecklarverktyg och automationsskript