Menerbitkan aplikasi .NET MAUI yang tidak dikemas untuk Windows dengan CLI
Saat mendistribusikan aplikasi .NET Multi-platform App UI (.NET MAUI) untuk Windows, Anda dapat menerbitkan aplikasi dan dependensinya ke folder untuk penyebaran ke sistem lain.
Mengonfigurasi pengaturan build proyek
Tambahkan simpul berikut <PropertyGroup>
ke file proyek Anda. Grup properti ini hanya diproses ketika kerangka kerja target adalah Windows dan konfigurasi diatur ke Release
. Bagian konfigurasi ini berjalan setiap kali build atau penerbitan dalam Release
mode.
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows' and '$(RuntimeIdentifierOverride)' != ''">
<RuntimeIdentifier>$(RuntimeIdentifierOverride)</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup>
Dalam contoh diperlukan untuk mengatasi bug di SDK Aplikasi Windows. Untuk informasi selengkapnya tentang bug, lihat Masalah WindowsAppSDK #3337.
Terbitkan
Untuk menerbitkan aplikasi Anda, buka Prompt Perintah Pengembang untuk terminal VS 2022 dan navigasikan ke folder untuk proyek aplikasi .NET MAUI Anda. Jalankan dotnet publish
perintah , menyediakan parameter berikut:
Parameter | Nilai |
---|---|
-f |
Kerangka kerja target, yaitu net8.0-windows{version} . Nilai ini adalah TFM Windows, seperti net8.0-windows10.0.19041.0 . Pastikan bahwa nilai ini identik dengan nilai dalam simpul <TargetFrameworks> dalam file .csproj Anda. |
-c |
Konfigurasi build, yaitu Release . |
-p:RuntimeIdentifierOverride=win10-x64 - atau - -p:RuntimeIdentifierOverride=win10-x86 |
Menghindari bug yang dirinci dalam Masalah WindowsAppSDK #3337. -x64 Pilih versi atau -x86 parameter berdasarkan platform target Anda. |
-p:WindowsPackageType |
Jenis paket, yang untuk None aplikasi yang tidak dikemas. |
-p:WindowsAppSDKSelfContained |
Mode penyebaran untuk aplikasi Anda, yang dapat bergantung pada kerangka kerja atau mandiri. Nilai ini harus true untuk aplikasi mandiri. Untuk informasi selengkapnya tentang aplikasi yang bergantung pada kerangka kerja dan aplikasi mandiri, lihat gambaran umum penyebaran SDK Aplikasi Windows. |
Peringatan
Mencoba menerbitkan solusi .NET MAUI akan mengakibatkan dotnet publish
perintah yang mencoba menerbitkan setiap proyek dalam solusi satu per satu, yang dapat menyebabkan masalah ketika Anda telah menambahkan jenis proyek lain ke solusi Anda. Oleh karena itu, dotnet publish
perintah harus dicakup ke proyek aplikasi .NET MAUI Anda.
Contoh:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None
Catatan
Di .NET 8, dotnet publish
perintah default ke Release
konfigurasi. Oleh karena itu, konfigurasi build dapat dihilangkan dari baris perintah.
Penerbitan membangun aplikasi, menyalin yang dapat dieksekusi ke folder bin\Release\net8.0-windows10.0.19041.0\win10-x64\publish . Di folder ini, ada file exe , dan itu adalah aplikasi bawaan. Aplikasi ini dapat diluncurkan atau seluruh folder dapat disalin ke komputer lain dan diluncurkan di sana.
Perbedaan penting dari aplikasi yang dipaketkan adalah bahwa ini tidak akan menyertakan runtime .NET dalam folder. Ini berarti bahwa aplikasi akan memerlukan runtime .NET untuk terlebih dahulu diinstal pada komputer yang akhirnya akan menjalankan aplikasi. Untuk memastikan aplikasi juga berisi semua komponen runtime, -p:WindowsAppSDKSelfContained
argumen dapat disediakan saat menerbitkan. Misalnya:
dotnet publish -f net8.0-windows10.0.19041.0 -c Release -p:RuntimeIdentifierOverride=win10-x64 -p:WindowsPackageType=None -p:WindowsAppSDKSelfContained=true
Untuk informasi selengkapnya tentang perintah, lihat penerbitan dotnet publish
dotnet.