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.
Ez az útmutató egy MAUI-specifikus buktatóra összpontosít: a(z) Platforms/Windows/Package.appxmanifest található forrásmanifestum olyan $placeholder$ tokeneket tartalmaz, amelyeket a(z) winapp package nem old fel. A MAUI esetében a(z) obj\...\resizetizer\m\Package.appxmanifest által létrehozott jegyzék használatával hozza létre a csomagot.
Egy konkrét MAUI-mintaprojekt a következő címen samples/maui-appérhető el: .
Prerequisites
- .NET SDK + MAUI számítási feladat (Windows):
winget install Microsoft.DotNet.SDK.10 --source winget dotnet workload install maui-windows - winapp parancssori felület:
winget install Microsoft.winappcli --source winget
1. Hozzon létre egy MAUI-alkalmazást, és tegye közzé a Windows fejét
dotnet new maui -n mymauiapp --no-restore
cd mymauiapp
# The stock template targets every MAUI platform. Keep only Windows when
# maui-windows is the only installed workload.
[xml]$project = Get-Content .\mymauiapp.csproj
$propertyGroup = $project.SelectSingleNode("/*[local-name()='Project']/*[local-name()='PropertyGroup'][1]")
$project.SelectNodes("/*[local-name()='Project']/*[local-name()='PropertyGroup']/*[local-name()='TargetFrameworks']") |
ForEach-Object { $_.ParentNode.RemoveChild($_) | Out-Null }
$windowsTfm = $project.CreateElement("TargetFrameworks", $project.DocumentElement.NamespaceURI)
$windowsTfm.InnerText = "net10.0-windows10.0.19041.0"
$propertyGroup.PrependChild($windowsTfm) | Out-Null
$project.Save((Resolve-Path .\mymauiapp.csproj).Path)
dotnet publish .\mymauiapp.csproj `
-c Release `
-f net10.0-windows10.0.19041.0 `
-r win-x64 `
-p:WindowsPackageType=None `
-p:SelfContained=true `
-p:WindowsAppSDKSelfContained=true `
--output .\publish\win-x64
2. Csomagolás a létrehozott MAUI-manifestfájl használatával
$manifest = ".\obj\Release\net10.0-windows10.0.19041.0\win-x64\resizetizer\m\Package.appxmanifest"
if (-not (Test-Path $manifest)) { throw "Resolved manifest not found: $manifest" }
winapp cert generate --manifest $manifest --if-exists overwrite
winapp package .\publish\win-x64 `
--manifest $manifest `
--executable mymauiapp.exe `
--cert .\devcert.pfx
3. Nem kötelező: csomagolatlan bináris fájlok aláírása
winapp sign .\publish\win-x64\mymauiapp.exe .\devcert.pfx --password password
Érvényesítési szkript (dev + CI)
Használja a MAUI-minta Pester-tesztszkriptet:
.\scripts\test-samples.ps1 -Samples maui-app
Ez lefuttatja a(z) samples/maui-app/test.Tests.ps1 elemet, amely a semmiből hoz létre egy MAUI-alkalmazást, közzéteszi a Windows-kimenetet, ellenőrzi a létrehozott Resizetizer-jegyzékfájl elérési útját, a(z) winapp használatával becsomagol egy MSIX-et, és aláírja a nem csomagolt végrehajtható fájlt.
Ugyanez a szkript a(z) .github/workflows/test-samples.yml mátrixbejegyzés alatt a(z) maui-app elembe is be van kötve.
Windows developer