Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
Relaterat innehåll
Windows developer