Konzolové aplikace s Windows App SDK

Můžete vytvářet konzolové aplikace, které používají Windows App SDK funkce, jako je správa životního cyklu aplikací, bohatá aktivace, nabízená oznámení a další. Na rozdíl od konzolových aplikací UPW (které vyžadovaly speciální šablony a C++/WinRT) používají desktopové konzolové aplikace standardní typy projektů .NET nebo C++.

Vytvoření konzolové aplikace pomocí Windows App SDK

Krok 1: Vytvoření projektu konzoly .NET

Použijte standardní šablonu konzolové aplikace .NET:

dotnet new console -n MyConsoleApp
cd MyConsoleApp

Krok 2: Přidání balíčku NuGet Windows App SDK

dotnet add package Microsoft.WindowsAppSDK

Krok 3: Použití rozhraní API Windows App SDK

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

Identita balíčku pro konzolové aplikace

Některé Windows App SDK funkce vyžadují identitu balíčku MSIX. Identitu balíčku konzolové aplikace můžete udělit dvěma způsoby:

  • Zabalte jako MSIX — Vytvořte projekt pro balení aplikací pro Windows a přidejte na něj odkaz na svou konzolovou aplikaci.
  • Použít externí identitu – Zaregistrujte řídký balíček pro identitu bez úplného balení MSIX.

Note

Funkce, jako jsou nabízená oznámení, úlohy na pozadí a aplikační služby, vyžadují identitu balíčku. Základní životní cyklus a aktivační rozhraní API fungují bez balení.

Rozdíly od konzolových aplikací pro UPW

funkce Konzolové aplikace pro UPW Desktopové konzolové aplikace
Podpora jazyků Pouze C++/WinRT a C++/CX C#, C++ a libovolný jazyk .NET
Šablona projektu Speciální šablona konzole UWP (VS 2017/2019) Standardní konzola .NET nebo Win32
Požadavek manifestu desktop4:Subsystem="console" Nepovinné
Activation AppExecutionAlias v manifestu Standardní příkazový řádek nebo rozšířená aktivace
Integrace sady SDK Omezeno na rozhraní API WinRT Úplný přístup k Windows App SDK

Important

Konzolové aplikace UPW vyžadovaly speciální Visual Studio šablony, které se už aktivně neudržují. Pro nové konzolové aplikace použijte standardní projekt konzoly .NET s balíčkem NuGet Windows App SDK.

Obvyklé scénáře

Nástroje příkazového řádku s integrací Windows

Vytváření nástrojů rozhraní příkazového řádku, které se integrují s funkcemi 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());

Zpracování na pozadí

Konzolové aplikace dobře fungují pro úlohy zpracování na pozadí:

  • Nástroje pro import a export dat
  • Sledovače a zpracovatele souborů
  • Naplánované spustitelné soubory úloh
  • Vývojářské nástroje a automatizační skripty