Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan ini berfokus pada satu kendala khusus MAUI: manifest sumber di Platforms/Windows/Package.appxmanifest berisi token $placeholder$ yang tidak dapat diuraikan oleh winapp package. Untuk MAUI, paket menggunakan manifes yang dihasilkan dari obj\...\resizetizer\m\Package.appxmanifest.
Proyek sampel MAUI konkret tersedia di samples/maui-app.
Prasyarat
- .NET beban kerja SDK + MAUI (Windows):
winget install Microsoft.DotNet.SDK.10 --source winget dotnet workload install maui-windows - winapp CLI:
winget install Microsoft.winappcli --source winget
1. Buat aplikasi MAUI dan terbitkan kepala Windows
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. Paket menggunakan manifes MAUI yang dihasilkan
$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. Opsional: tandatangani biner yang belum dikemas
winapp sign .\publish\win-x64\mymauiapp.exe .\devcert.pfx --password password
Skrip validasi (dev + CI)
Gunakan sampel skrip uji Pester MAUI:
.\scripts\test-samples.ps1 -Samples maui-app
Perintah ini menjalankan samples/maui-app/test.Tests.ps1, yang membuat aplikasi MAUI dari nol, menghasilkan output Windows, memvalidasi jalur manifes Resizetizer yang dihasilkan, mengemas MSIX dengan winapp, dan menandatangani file eksekusi yang tidak dikemas.
Skrip yang sama juga diintegrasikan ke .github/workflows/test-samples.yml di bawah entri matriks maui-app.
Windows developer