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.
Artikel ini berlaku untuk: ✔️ .NET SDK 10 dan versi yang lebih baru
Kemasi alat .NET untuk platform dan arsitektur tertentu sehingga Anda dapat mendistribusikan aplikasi asli, cepat, dan yang telah dioptimalkan. Kemampuan ini memudahkan untuk mendistribusikan aplikasi .NET asli, cepat, dan dipangkas untuk alat baris perintah seperti server MCP atau utilitas khusus platform lainnya.
Gambaran Umum
Dimulai dengan .NET SDK 10, Anda dapat membuat alat .NET yang menargetkan Pengidentifikasi Runtime (RID) tertentu. Alat-alat ini dapat berupa:
- Khusus RID: Dikompilasi untuk sistem operasi dan arsitektur tertentu.
- Mandiri: Sertakan runtime .NET dan tidak memerlukan penginstalan .NET terpisah.
- AOT Asli: Gunakan kompilasi Ahead-of-Time untuk startup yang lebih cepat dan jejak memori yang lebih kecil.
Saat pengguna menginstal alat khusus RID, .NET CLI secara otomatis memilih dan menginstal paket yang sesuai untuk platform mereka.
Memilih untuk berpartisipasi dalam kemasan khusus RID
Untuk membuat alat khusus RID, konfigurasikan proyek Anda dengan salah satu properti MSBuild berikut:
Properti RuntimeIdentifiers
Gunakan RuntimeIdentifiers untuk menentukan platform yang didukung alat Anda:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<PackAsTool>true</PackAsTool>
<ToolCommandName>mytool</ToolCommandName>
<RuntimeIdentifiers>win-x64;linux-x64;osx-arm64</RuntimeIdentifiers>
</PropertyGroup>
</Project>
Properti ToolPackageRuntimeIdentifiers
Atau, gunakan ToolPackageRuntimeIdentifiers untuk konfigurasi RID khusus alat:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<PackAsTool>true</PackAsTool>
<ToolCommandName>mytool</ToolCommandName>
<ToolPackageRuntimeIdentifiers>win-x64;linux-x64;osx-arm64</ToolPackageRuntimeIdentifiers>
</PropertyGroup>
</Project>
Gunakan daftar nilai RID yang dibatasi titik koma. Untuk daftar Pengidentifikasi Runtime, lihat katalog RID.
Mengemas alat Anda
Proses pengemasan berbeda tergantung pada apakah Anda menggunakan kompilasi AOT. Untuk membangun paket NuGet, atau file .nupkg dari proyek, jalankan perintah paket dotnet .
Alat khusus RID dan mandiri
Untuk alat tanpa kompilasi AOT, jalankan dotnet pack sekali:
dotnet pack
Perintah ini membuat beberapa paket NuGet:
- Satu paket untuk setiap RID:
<packageName>.<RID>.<packageVersion>.nupkg- Contoh:
mytool.win-x64.1.0.0.nupkg - Contoh:
mytool.linux-x64.1.0.0.nupkg - Contoh:
mytool.osx-arm64.1.0.0.nupkg
- Contoh:
- Paket pointer yang tidak bergantung pada RID:
<packageName>.<packageVersion>.nupkg- Contoh:
mytool.1.0.0.nupkg
- Contoh:
Alat AOT
Untuk alat dengan kompilasi AOT (<PublishAot>true</PublishAot>), Anda harus mengemas secara terpisah untuk setiap platform:
Kemas paket tingkat atas sekali (pada platform apa pun):
dotnet packKemas untuk setiap RID tertentu pada platform yang sesuai:
dotnet pack -r win-x64 dotnet pack -r linux-x64 dotnet pack -r osx-arm64Anda harus menjalankan setiap perintah paket khusus RID pada platform yang cocok karena kompilasi AOT menghasilkan biner asli. Untuk informasi selengkapnya tentang prasyarat untuk kompilasi AOT Asli, lihat Penyebaran AOT Asli.
Struktur paket
Jenis paket
Paket alat khusus RID menggunakan dua jenis paket:
- DotnetTool: Paket tingkat atas yang berisi metadata.
- DotnetToolRidPackage: Paket khusus RID yang berisi biner alat aktual.
Metadata paket
Paket tingkat atas mencakup metadata yang menandakan itu adalah alat khusus RID dan mencantumkan paket khusus RID. Saat Anda menjalankan dotnet tool install, CLI membaca metadata ini untuk menentukan paket khusus RID mana yang akan diinstal untuk platform saat ini.
Menerbitkan alat Anda
Terbitkan semua paket ke NuGet.org atau umpan paket Anda dengan menggunakan dotnet nuget push:
dotnet nuget push path/to/package/root/*.nupkg
Menjalankan alat khusus untuk RID
Pengguna menjalankan alat khusus RID dengan cara yang sama seperti alat yang tidak bergantung pada platform.
dnx mytool
CLI secara otomatis melakukan:
- Mengunduh paket tingkat atas.
- Membaca metadata khusus RID.
- Mengidentifikasi paket yang paling tepat untuk platform saat ini.
- Mengunduh dan menjalankan paket khusus RID.
Contoh: Membuat alat AOT
Berikut adalah contoh lengkap pembuatan alat khusus RID yang dikompilasi AOT:
Buat aplikasi konsol baru:
dotnet new console -n MyFastTool cd MyFastToolPerbarui file proyek untuk mengaktifkan kemasan khusus AOT dan RID:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net10.0</TargetFramework> <PackAsTool>true</PackAsTool> <ToolCommandName>myfasttool</ToolCommandName> <RuntimeIdentifiers>win-x64;linux-x64;osx-arm64</RuntimeIdentifiers> <PublishAot>true</PublishAot> <PackageId>MyFastTool</PackageId> <Version>1.0.0</Version> <Authors>Your Name</Authors> <Description>A fast AOT-compiled tool</Description> </PropertyGroup> </Project>Tambahkan kode aplikasi Anda di
Program.cs:Console.WriteLine("Hello from MyFastTool!"); Console.WriteLine($"Running on {Environment.OSVersion}");Kemas paket tingkat atas:
dotnet packKemas untuk setiap RID tertentu (pada platform yang sesuai):
Pada Windows:
dotnet pack -r win-x64Di Linux:
dotnet pack -r linux-x64Di macOS:
dotnet pack -r osx-arm64Terbitkan semua paket ke NuGet.org dengan menggunakan perintah dotnet nuget push .