Berbagi dari posting Rick Strahl: Unduhan Waktu Proses Inti .NET manakah yang Anda perlukan?
Hanya .NET Core Runtime yang diperlukan untuk menjalankan aplikasi dan memberikan informasi tentang penginstalan.
Untuk mengembangkan, membangun dan menerbitkan aplikasi akan membutuhkan SDK.
dotnet.exe
install dengan runtime install, tetapi hanya menyediakan fitur inti untuk memberikan info untuk menjalankan aplikasi dan memberikan info tentang install: dotnet mydll.dll
dan dotnet --info
. Untuk membuat, menerbitkan, atau melakukan apa pun yang Anda perlukan untuk menginstal SDK.
Menjalankan perintah berikut akan memberikan informasi tentang penginstalan:
dotnet --info
Jika perintah gagal, artinya Anda tidak memiliki runtime .NET Core diinstal atau tersedia di PATH sistem.
Di bawah ini adalah contoh keluaran dari perintah.
$ dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.2.101
Commit: 236713b0b7
Runtime Environment:
OS Name: Mac OS X
OS Version: 10.13
OS Platform: Darwin
RID: osx.10.13-x64
Base Path: /usr/local/share/dotnet/sdk/2.2.101/
Host (useful for support):
Version: 2.2.0
Commit: 1249f08fed
.NET Core SDKs installed:
2.1.4 [/usr/local/share/dotnet/sdk]
2.1.302 [/usr/local/share/dotnet/sdk]
2.2.101 [/usr/local/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
Outputnya memberi tahu Anda:
- Versi SDK yang diinstal
- Versi runtime aktif yang menjalankan perintah dotnet ini
- Daftar semua runtime dan SDK yang diinstal
Menginstal SDK juga menginstal runtime.
khusus macOS homebrew
Menginstal dotnet homebrew-cask akan berkonflik dengan dotnet-sdk , jadi untuk mendapatkan runtime, dan sdk menginstal dotnet-sdk
brew cask install dotnet-sdk
Singkatnya, runtime akan memungkinkan OS Anda menjalankan program C-Sharp , C # yang dikompilasi , dan sdk akan memungkinkan Anda untuk mengkompilasi program yang ditulis dalam C-Sharp , C # .
Penting untuk dipahami bahwa Anda dapat memiliki beberapa runtime dan beberapa SDK yang terpasang dan setiap proyek dapat menggunakan yang berbeda. Waktu proses ditentukan oleh penentu waktu proses proyek Anda di .csproj
file:
<TargetFramework>netcoreapp2.1</TargetFramework>
SDK adalah SDK yang dipasang secara global terakhir yang merupakan default, atau Anda dapat secara eksplisit mengganti SDK di global.json yang ditempatkan di folder root solusi. Berikut ini secara eksplisit memaksa proyek saya untuk menggunakan RC SDK terakhir, bukan versi RTM:
{
"sdk": {
"version": "2.1.300-rc.31211"
}
}
Secara umum, tidak perlu menggunakan versi SDK tertentu yang lebih rendah karena SDK kompatibel dengan versi sebelumnya dan dapat mengompilasi berbagai versi aplikasi .NET Core kembali ke v1.0. IOW, tidak masalah menggunakan SDK terbaru di hampir semua kasus.
.NET Core Runtime
.NET Core Runtimes adalah komponen mandiri dan spesifik terkecil dan berisi minimum absolut untuk menjalankan hanya .NET Core pada platform tertentu.
Perhatikan bahwa penginstalan runtime tidak menyertakan dependensi runtime paket meta ASP.NET Core, jadi jika aplikasi Anda mereferensikan Microsoft.AspNetCore.App atau Microsoft.AspNetCore. Anda harus mengunduh paket ASP.NET Core secara terpisah. Namun, jika Anda secara eksplisit mereferensikan semua paket ASP.NET Core Nuget daripada menggunakan paket meta, paket tersebut disebarkan sebagai bagian dari aplikasi Anda dan dapat berjalan hanya dengan runtime.
Pada dasarnya Anda memperdagangkan ukuran paket instalasi vs. persyaratan pra-instal runtime.
Referensi: