Bagikan melalui


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 publishdotnet.