Konzolalkalmazások a Windows App SDK-val

Olyan konzolalkalmazásokat hozhat létre, amelyek Windows App SDK olyan funkciókat használnak, mint az alkalmazás életciklusának kezelése, a gazdag aktiválás, a leküldéses értesítések stb. Ellentétben az UWP-konzolalkalmazásokkal (amelyek speciális sablonokat és C++/WinRT-et igényelnek), az asztali konzolalkalmazások szabványos .NET vagy C++ projekttípusokat használnak.

Konzolalkalmazás létrehozása a Windows App SDK-val

1. lépés: .NET konzolprojekt létrehozása

Használja a standard .NET konzolalkalmazás-sablont:

dotnet new console -n MyConsoleApp
cd MyConsoleApp

2. lépés: A Windows App SDK NuGet-csomag hozzáadása

dotnet add package Microsoft.WindowsAppSDK

3. lépés: Windows App SDK API-k használata

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

Csomagidentitás konzolalkalmazásokhoz

Egyes Windows App SDK funkciókhoz MSIX-csomagdentitás szükséges. A konzolalkalmazás-csomag identitását kétféleképpen adhatja meg:

  • Csomagolás MSIX-ként — Hozzon létre egy Windows-alkalmazáscsomagoló projektet, és adja hozzá referenciaként a konzolalkalmazását.
  • Külső identitás használata — Regisztráljon egy ritkított csomagot identitáshoz teljes MSIX-csomagolás nélkül.

Note

Az olyan funkciók, mint a leküldéses értesítések, a háttérfeladatok és az appszolgáltatások csomagazonosságát igénylik. Az alapvető életciklus- és aktiválási API-k csomagolás nélkül működnek.

Különbségek az UWP-konzolalkalmazásoktól

Funkció UWP-konzolalkalmazások Asztali konzolalkalmazások
Nyelvi támogatás Csak C++/WinRT és C++/CX C#, C++ és bármilyen .NET nyelv
Projektsablon Speciális UWP-konzolsablon (VS 2017/2019) Standard .NET konzol vagy Win32
Manifesztumkövetelmény desktop4:Subsystem="console" Nem kötelező
Activation AppExecutionAlias jegyzékben Normál parancssor vagy bővített aktiválás
SDK-integráció Csak WinRT API-kra korlátozva Teljes Windows App SDK hozzáférés

Important

Az UWP-konzolalkalmazások speciális Visual Studio olyan sablonokat igényelnek, amelyeket már nem tartanak fenn aktívan. Új konzolalkalmazások esetén használjon egy standard .NET-konzolprojektet a Windows App SDK NuGet-csomaggal.

Gyakori forgatókönyvek

Parancssori eszközök Windows integrációval

Cli-eszközök létrehozása, amelyek integrálhatók Windows funkciókkal:

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

Háttérfeldolgozás

A konzolalkalmazások jól működnek a háttérfeldolgozási feladatokhoz:

  • Adatimportálási/exportálási segédprogramok
  • Fájlfigyelők és processzorok
  • Ütemezett feladat futtatható fájljai
  • Fejlesztői eszközök és automatizálási szkriptek