Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Egy működő példáért tekintse meg a dotnet-file-app mintát. A teljes referenciaért tekintse meg az egyfájlos módot a parancssori felület referenciájában.
A .NET 10 egyetlen .cs fájlt is futtathat projektfájl nélkül. Ez az útmutató bemutatja, hogyan futtathatja azt a fájlt csomagidentitás használatával winapp run, így az olyan API-k, mint a Windows.ApplicationModel.Package.Current, az alkalmazásértesítések és az eszközön futó AI működnek. Nem kell manifesztet vagy képi erőforrásokat készítened: a winapp létrehozza őket.
A csomagidentitás a Windows app modell alapvető fogalma. Lehetővé teszi az alkalmazás számára adott Windows API-k elérését, tiszta telepítési/eltávolítási élményt és egyebeket. A dotnet run használatával futtatott fájlalapú alkalmazás nem rendelkezik csomagidentitással.
Prerequisites
.NET SDK 10.0.300 vagy újabb verziója: Telepítse a .NET 10 SDK-t (a telepítés után újra kell indítani):
winget install Microsoft.DotNet.SDK.10 --source wingetwinapp CLI: Telepítse az eszközt a
winappwingettel (vagy frissítse, ha már telepítve van):winget install Microsoft.winappcli --source winget
1. Fájlalapú alkalmazás létrehozása
Hozzon létre egy mappát egy hello.cs nevű fájllal:
#:property OutputType=Exe
#:property TargetFramework=net10.0-windows10.0.19041.0
using Windows.ApplicationModel;
try
{
Console.WriteLine($"Package Family Name: {Package.Current.Id.FamilyName}");
}
catch (InvalidOperationException)
{
// Thrown when the app doesn't have package identity
Console.WriteLine("Not packaged");
}
A #:property sorok úgy konfigurálják az alkalmazást, ahogyan egy .csproj tenné. A Windows TargetFramework hozzáférést biztosít a kódnak Windows-futtatókörnyezet API-khoz, például Package.
Futtassa ezzel: dotnet run
dotnet run hello.cs
A kimenet a következő Not packaged: az alkalmazás csomagidentitás nélkül fut.
2. Futtatás csomagidentitással
Futtassa ugyanazt a fájlt a winappal:
winapp run hello.cs
A winapp létrehozza az alkalmazást, létrehoz egy manifestfájlt és alapértelmezett képerőforrásokat a build kimenetében, regisztrálja az alkalmazást csomagként, és elindítja azt. A kimenet most a csomag identitását jeleníti meg:
Package Family Name: hello-<hash>_<publisher-hash>
A forrásmappa továbbra is csak hello.cs tartalmaz. Mivel ez egy konzolalkalmazás (OutputType=Exe), a winapp egy végrehajtási aliason keresztül indítja el, így a kimenete megjelenik a terminálban.
A regisztráció az alkalmazás kilépése után is érvényben marad, így a winapp run hello.cs ismételt futtatása ugyanazt az identitást használja. Az 5. lépésben eltávolíthatja.
3. A csomag elnevezése
Alapértelmezés szerint a csomag neve a fájlnév, valamint a fájl elérési útjának rövid hash-e. A saját név kiválasztásához először szüntesse meg az aktuális csomag regisztrációját, mert egy új név egy új csomagot regisztrál:
winapp unregister hello.cs
Ezután adja hozzá a(z) #:property irányelveket a(z) hello.cs tetejéhez:
#:property WinAppPackageName=com.contoso.hello
#:property WinAppDisplayName=Contoso Hello
#:property Version=1.0.0
Futtassa újra:
winapp run hello.cs
A kimenetben például Package Family Name: com.contoso.hello_<publisher-hash>az új név látható. Az alkalmazás a Start menüben Contoso Hello néven is megjelenik.
Minden identitástulajdonságról és annak alapértelmezett értékéről a Jegyzékfájl tulajdonságai című témakörben olvashat.
4. Futtatás a következővel: dotnet run
Ha ugyanazt a csomagolt indítást egyszerű dotnet run-ból szeretné lekérni, hivatkozzon a hello.cs tetején lévő Microsoft.Windows.SDK.BuildTools.WinApp csomagra:
#:package Microsoft.Windows.SDK.BuildTools.WinApp@*
dotnet run hello.cs
A kimenet ugyanazt a csomagidentitást jeleníti meg, mint a winapp run. Mivel dotnet run egy másik kimeneti mappába épít, figyelmeztet arra, hogy egy másik helyről telepített meglévő regisztrációs bejegyzést cserél le. Ez várható, és figyelmen kívül hagyhatja.
A csomag helyőrző ablak ikont is biztosít az alkalmazásnak, így egy ablakos alkalmazás egy ikont jelenít meg a címsorban. Ha a sajátját szeretné használni, mutasson a .ico fájlra a(z) ApplicationIcon használatával:
#:property ApplicationIcon=Assets\MyApp.ico
Az indítást vezérlő tulajdonságokról lásd: Futtatás a következővel dotnet run.
5. Tisztítás
Távolítsa el a regisztrációt úgy, hogy a .cs fájlt átadja a winapp unregister számára:
winapp unregister hello.cs
Képességek vagy egyéni manifest hozzáadása
Egyes API-knak deklarált képességre van szükségük. A Windows AI API-knak például a következőkre van szükségük systemAIModels:
#:property WinAppCapabilities=systemAIModels
A winapp minden képességet a megfelelő manifest elemébe ír. A teljes listát és az elnevezési szabályokat lásd a Capabilities résznél.
A protokollkezelőknek, fájltársításoknak és más shellintegrációknak manifesztumra van szükségük. Helyezzen egy hello.cs jelet a(z) hello.appxmanifest mellé, és a winapp azt használja ahelyett, hogy létrehozna egyet. Lásd: Saját manifest használata.
Következő lépések
-
Terjesztésre szolgáló csomag:
winapp runaz alkalmazást csak fejlesztéshez regisztrálja. Egy terjeszthető MSIX létrehozásához helyezze át a kódot egy projektbe, és kövesse a .NET-útmutató Csomagolás MSIX használatával című részét. - Explore Windows API-k: Csomagidentitással mostantól használhatja az Értesítések, a helyi eszközi AI, és egyéb identitásfüggő API-kat
Windows developer