Microsoft.AspNetCore.App untuk ASP.NET Core

Kerangka kerja bersama ASP.NET Core (Microsoft.AspNetCore.App) berisi rakitan yang dikembangkan dan didukung oleh Microsoft. Microsoft.AspNetCore.App diinstal ketika .NET Core 3.0 atau yang lebih baru SDK diinstal. Kerangka kerja bersama adalah sekumpulan rakitan (file.dll) yang diinstal pada komputer dan menyertakan komponen runtime dan paket penargetan. Untuk informasi selengkapnya, lihat Kerangka kerja bersama.

  • Proyek yang menargetkan Microsoft.NET.Sdk.Web SDK secara implisit mereferensikan Microsoft.AspNetCore.App kerangka kerja.

Tidak ada referensi tambahan yang diperlukan untuk proyek-proyek ini:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
    ...
</Project>

Kerangka kerja bersama ASP.NET Core:

  • Tidak termasuk dependensi pihak ketiga.
  • Mencakup semua paket yang didukung oleh tim ASP.NET Core.

Fitur ini memerlukan ASP.NET Core 2.x yang menargetkan .NET Core 2.x.

Metapaket Microsoft.AspNetCore.Appuntuk ASP.NET Core:

  • Tidak termasuk dependensi pihak ketiga kecuali untuk Json.NET, Remotion.Linq, dan IX-Async. Dependensi pihak ketiga ini dianggap perlu untuk memastikan fungsi fitur kerangka kerja utama.
  • Termasuk semua paket yang didukung oleh tim ASP.NET Core kecuali yang berisi dependensi pihak ketiga (selain yang disebutkan sebelumnya).
  • Termasuk semua paket yang didukung oleh tim Entity Framework Core kecuali yang berisi dependensi pihak ketiga (selain yang disebutkan sebelumnya).

Semua fitur ASP.NET Core 2.x dan Entity Framework Core 2.x disertakan dalam Microsoft.AspNetCore.App paket. Templat proyek default yang menargetkan ASP.NET Core 2.x menggunakan paket ini. Sebaiknya aplikasi yang menargetkan ASP.NET Core 2.x dan Entity Framework Core 2.x menggunakan paket.Microsoft.AspNetCore.App

Nomor Microsoft.AspNetCore.App versi metapackage mewakili versi minimum ASP.NET Core dan versi Entity Framework Core.

Microsoft.AspNetCore.App Menggunakan metapackage menyediakan pembatasan versi yang melindungi aplikasi Anda:

  • Jika paket disertakan yang memiliki dependensi transitif (bukan langsung) pada paket di Microsoft.AspNetCore.App, dan nomor versi tersebut berbeda, NuGet akan menghasilkan kesalahan.
  • Paket lain yang ditambahkan ke aplikasi Anda tidak dapat mengubah versi paket yang disertakan dalam Microsoft.AspNetCore.App.
  • Konsistensi versi memastikan pengalaman yang andal. Microsoft.AspNetCore.App dirancang untuk mencegah kombinasi versi yang belum diujar dari bit terkait yang digunakan bersama-sama di aplikasi yang sama.

Aplikasi yang menggunakan Microsoft.AspNetCore.App metapackage secara otomatis memanfaatkan kerangka kerja bersama ASP.NET Core. Saat Anda menggunakan Microsoft.AspNetCore.App metapackage, tidak ada aset dari paket ASP.NET Core NuGet yang direferensikan disebarkan dengan aplikasi—kerangka kerja bersama ASP.NET Core berisi aset ini. Aset dalam kerangka kerja bersama telah dikommpilasikan sebelumnya untuk meningkatkan waktu pengaktifan aplikasi. Untuk informasi selengkapnya, lihat Kerangka kerja bersama.

File proyek berikut mereferensikan Microsoft.AspNetCore.App metapackage untuk ASP.NET Core dan mewakili templat ASP.NET Core 2.2 yang khas:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>

Markup sebelumnya mewakili templat ASP.NET Core 2.x yang khas. Ini tidak menentukan nomor versi untuk Microsoft.AspNetCore.App referensi paket. Ketika versi tidak ditentukan, versi implisit ditentukan oleh SDK, yaitu, Microsoft.NET.Sdk.Web. Sebaiknya anda mengandalkan versi implisit yang ditentukan oleh SDK dan tidak secara eksplisit mengatur nomor versi pada referensi paket. Jika Anda memiliki pertanyaan tentang pendekatan ini, tinggalkan komentar GitHub di Diskusi untuk versi implisit Microsoft.AspNetCore.App.

Versi implisit diatur ke major.minor.0 untuk aplikasi portabel. Mekanisme roll-forward kerangka kerja bersama akan menjalankan aplikasi pada versi terbaru yang kompatibel di antara kerangka kerja bersama yang diinstal. Untuk menjamin versi yang sama digunakan dalam pengembangan, pengujian, dan produksi, pastikan versi kerangka kerja bersama yang sama diinstal di semua lingkungan. Untuk aplikasi mandiri, nomor versi implisit diatur ke major.minor.patch kerangka kerja bersama yang dibundel di SDK yang diinstal.

Menentukan nomor versi pada Microsoft.AspNetCore.App referensi tidak menjamin bahwa versi kerangka kerja bersama akan dipilih. Misalnya, versi "2.2.1" ditentukan, tetapi "2.2.3" diinstal. Dalam hal ini, aplikasi akan menggunakan "2.2.3". Meskipun tidak disarankan, Anda dapat menonaktifkan roll forward (patch dan/atau minor). Untuk informasi selengkapnya mengenai roll-forward host dotnet dan cara mengonfigurasi perilakunya, lihat dotnet host roll forward.

<Project Sdk harus diatur ke Microsoft.NET.Sdk.Web untuk menggunakan versi implisit Microsoft.AspNetCore.App. Ketika <Project Sdk="Microsoft.NET.Sdk"> (tanpa trailing .Web) digunakan:

  • Peringatan berikut dihasilkan:

    Peringatan NU1604: Dependensi proyek Microsoft.AspNetCore.App tidak berisi batas bawah inklusif. Sertakan batas yang lebih rendah dalam versi dependensi untuk memastikan hasil pemulihan yang konsisten.

  • Ini adalah masalah yang diketahui dengan .NET Core 2.1 SDK.

Memperbarui ASP.NET Core

Metapackage Microsoft.AspNetCore.App bukan paket tradisional yang diperbarui dari NuGet. Mirip Microsoft.NETCore.Appdengan , Microsoft.AspNetCore.App mewakili runtime bersama, yang memiliki semantik penerapan versi khusus yang ditangani di luar NuGet. Untuk informasi selengkapnya, lihat Paket, metapaket, dan kerangka kerja.

Untuk memperbarui ASP.NET Core:

  • Pada komputer pengembangan dan membangun server: Unduh dan instal .NET Core SDK.
  • Pada server penyebaran: Unduh dan instal runtime .NET Core.

Aplikasi akan diteruskan ke versi terbaru yang diinstal pada mulai ulang aplikasi. Tidak perlu memperbarui Microsoft.AspNetCore.App nomor versi dalam file proyek. Untuk informasi selengkapnya, lihat Aplikasi yang bergantung pada kerangka kerja diluncurkan.

Jika aplikasi Anda sebelumnya menggunakan Microsoft.AspNetCore.All, lihat Migrasi dari Microsoft.AspNetCore.All ke Microsoft.AspNetCore.App.