Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Funkční příklad najdete v ukázce dotnet-file-app. Úplné reference najdete v tématu Režim s jedním souborem v referenčních informacích rozhraní příkazového řádku.
V .NET 10 lze spustit jeden soubor .cs bez souboru projektu. Tento průvodce ukazuje, jak tento soubor spustit s identitou balíčku pomocí winapp run, aby fungovala rozhraní API, jako je Windows.ApplicationModel.Package.Current, oznámení aplikací a AI v zařízení. Manifest ani prostředky obrázků nemusíte vytvářet: winapp je za vás vygeneruje.
Identita balíčku je základním konceptem modelu Windows app. Umožňuje aplikaci přistupovat ke konkrétním rozhraním API Windows, zajistit bezproblémovou instalaci a odinstalaci a další možnosti. Aplikace založená na souborech spuštěná pomocí dotnet run nemá žádnou identitu balíčku.
Prerequisites
.NET SDK 10.0.300 nebo novější: Nainstalujte sadu .NET 10 SDK (vyžaduje restartování po instalaci):
winget install Microsoft.DotNet.SDK.10 --source wingetwinapp CLI: Nainstalujte nástroj prostřednictvím wingetu (nebo aktualizujte
winapp, pokud už je nainstalovaný):winget install Microsoft.winappcli --source winget
1. Vytvořte aplikaci založenou na souborech
Vytvořte složku se souborem s názvem hello.cs:
#: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");
}
Řádky #:property nakonfigurují aplikaci tak, jak by to udělal .csproj. Položka Windows TargetFramework poskytuje kódu přístup k rozhraním API prostředí Windows Runtime, jako je Package.
Spusťte ho pomocí dotnet run:
dotnet run hello.cs
Výstup je Not packaged: Aplikace se spouští bez identity balíčku.
2. Spuštění s identitou balíčku
Spusťte stejný soubor s winappem:
winapp run hello.cs
Winapp aplikaci sestaví, vygeneruje manifest a výchozí prostředky image ve výstupu sestavení, zaregistruje aplikaci jako balíček a spustí ji. Výstup teď zobrazuje identitu balíčku:
Package Family Name: hello-<hash>_<publisher-hash>
Vaše zdrojová složka stále obsahuje pouze hello.cs. Vzhledem k tomu, že se jedná o konzolovou aplikaci (OutputType=Exe), winapp ji spustí prostřednictvím aliasu spuštění, takže se její výstup zobrazí v terminálu.
Registrace zůstane po ukončení aplikace na místě, takže opětovné spuštění winapp run hello.cs znovu použije stejnou identitu. Odeberete ho v kroku 5.
3. Pojmenujte balíček
Ve výchozím nastavení je název balíčku název souboru plus krátká hodnota hash cesty k souboru. Pokud chcete zvolit vlastní název, nejprve zrušte registraci aktuálního balíčku, protože nový název zaregistruje nový balíček:
winapp unregister hello.cs
Pak přidejte #:property direktivy na začátek hello.cs:
#:property WinAppPackageName=com.contoso.hello
#:property WinAppDisplayName=Contoso Hello
#:property Version=1.0.0
Spusť ho znovu:
winapp run hello.cs
Výstup zobrazuje nový název, například Package Family Name: com.contoso.hello_<publisher-hash>. Aplikace se také zobrazí v nabídce Start jako Contoso Hello.
Pro každou vlastnost identity a její výchozí hodnotu viz vlastnosti manifestu.
4. Spusťte pomocí dotnet run
Pro získání stejného zabaleného spuštění z prostého dotnet run odkažte na balíček Microsoft.Windows.SDK.BuildTools.WinApp v horní části hello.cs:
#:package Microsoft.Windows.SDK.BuildTools.WinApp@*
dotnet run hello.cs
Výstup zobrazuje stejnou identitu balíčku jako winapp run. Vzhledem k tomu dotnet run, že se sestavuje do jiné výstupní složky, varuje, že nahrazuje existující registraci nainstalovanou z jiného umístění. To je očekávané a můžete ho ignorovat.
Balíček také dává aplikaci zástupnou ikonu okna, takže okenní aplikace zobrazí ikonu v záhlaví. Chcete-li použít vlastní soubor, nasměrujte ApplicationIcon na soubor .ico:
#:property ApplicationIcon=Assets\MyApp.ico
Vlastnosti, které určují toto spuštění, naleznete v tématu Spuštění s dotnet run.
5. Vyčistěte
Odeberte registraci předáním souboru .cs do winapp unregister:
winapp unregister hello.cs
Přidat možnosti nebo vlastní manifest
Některá rozhraní API potřebují deklarované oprávnění. Například Windows rozhraní API AI potřebujísystemAIModels:
#:property WinAppCapabilities=systemAIModels
Winapp zapíše každou funkci do správného elementu manifestu. Podívejte se na Schopnosti, kde najdete úplný seznam a pravidla pojmenování.
Obslužné programy protokolů, přidružení souborů a další integrace prostředí potřebují ručně vytvořený manifest. Umístěte hello.appxmanifest vedle hello.cs a aplikace winapp jej použije místo jeho vygenerování. Viz Dodejte vlastní manifest.
Další kroky
-
Distribuční balíček:
winapp runregistruje aplikaci pouze pro vývoj. Pokud chcete vytvořit MSIX, který můžete distribuovat, přesuňte kód do projektu a v průvodci .NET postupujte podle Vytvoření balíčku pomocí MSIX. - prozkoumat rozhraní Windows API: S identitou balíčku teď můžete používat oznámení, AI na zařízení a další rozhraní API závislé na identitě
Windows developer