Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här guiden fokuserar på en MAUI-specifik fallgrop: källmanifestet vid Platforms/Windows/Package.appxmanifest innehåller $placeholder$-token som winapp package inte ersätter. För MAUI: paketera med hjälp av det genererade manifestet från obj\...\resizetizer\m\Package.appxmanifest.
Ett konkret MAUI-exempelprojekt finns på samples/maui-app.
Förutsättningar
- .NET SDK + MAUI-arbetsbelastning (Windows):
winget install Microsoft.DotNet.SDK.10 --source winget dotnet workload install maui-windows - winapp CLI:
winget install Microsoft.winappcli --source winget
1. Skapa en MAUI-app och publicera Windows huvudet
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. Paketera med hjälp av det genererade MAUI-manifestet
$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. Valfritt: signera uppackade binärfiler
winapp sign .\publish\win-x64\mymauiapp.exe .\devcert.pfx --password password
Valideringsskript (dev + CI)
Använd MAUI-exempeltestskriptet för Pester:
.\scripts\test-samples.ps1 -Samples maui-app
Detta kör samples/maui-app/test.Tests.ps1, som skapar en MAUI-app från grunden, publicerar utdata för Windows, validerar sökvägen till det genererade Resizetizer-manifestet, paketerar en MSIX med winapp och signerar den opaketerade körbara filen.
Samma skript är också kopplat till maui-app under matrisposten .github/workflows/test-samples.yml.
Windows developer