Microsoft.AspNetCore.All metapackage untuk ASP.NET Core 2.0

Catatan

Metapackage Microsoft.AspNetCore.All tidak digunakan di ASP.NET Core 3.0 dan yang lebih baru. Untuk informasi lebih lanjut, lihat masalah GitHub ini.

Catatan

Sebaiknya aplikasi yang menargetkan ASP.NET Core 2.1 dan yang lebih baru menggunakan metapackage Microsoft.AspNetCore.App daripada paket ini. Lihat Migrasi dari Microsoft.AspNetCore.All ke Microsoft.AspNetCore.App di artikel ini.

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

Microsoft.AspNetCore.All adalah metapackage yang mengacu pada kerangka kerja bersama. Kerangka kerja bersama adalah sekumpulan rakitan (file.dll) yang tidak ada di folder aplikasi. Kerangka kerja bersama harus diinstal pada komputer untuk menjalankan aplikasi. Untuk informasi selengkapnya, lihat Kerangka kerja bersama.

Kerangka kerja bersama yang Microsoft.AspNetCore.All mengacu pada meliputi:

  • Semua paket yang didukung oleh tim ASP.NET Core.
  • Semua paket yang didukung oleh Entity Framework Core.
  • Dependensi internal dan pihak ketiga yang digunakan oleh ASP.NET Core dan Entity Framework Core.

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

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

File berikut mereferensikan .csprojMicrosoft.AspNetCore.All metapackage untuk ASP.NET Core:

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.9" />
  </ItemGroup>

</Project>

Penerapan versi implisit

Di ASP.NET Core 2.1 atau yang lebih baru, Anda dapat menentukan Microsoft.AspNetCore.All referensi paket tanpa versi. Saat versi tidak ditentukan, versi implisit ditentukan oleh SDK (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 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.All referensi paket tidak menjamin bahwa versi kerangka kerja bersama dipilih. Misalnya, misalkan versi "2.1.1" ditentukan, tetapi "2.1.3" diinstal. Dalam hal ini, aplikasi akan menggunakan "2.1.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.

SDK proyek harus diatur ke Microsoft.NET.Sdk.Web dalam file proyek untuk menggunakan versi implisit .Microsoft.AspNetCore.All Microsoft.NET.Sdk Ketika SDK ditentukan (<Project Sdk="Microsoft.NET.Sdk"> di bagian atas file proyek), peringatan berikut dihasilkan:

Peringatan NU1604: Dependensi proyek Microsoft.AspNetCore.All 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 dan akan diperbaiki di .NET Core 2.2 SDK.

Migrasi dari Microsoft.AspNetCore.All ke Microsoft.AspNetCore.App

Paket berikut disertakan dalam Microsoft.AspNetCore.All tetapi bukan Microsoft.AspNetCore.App paket.

  • Microsoft.AspNetCore.ApplicationInsights.HostingStartup
  • Microsoft.AspNetCore.AzureAppServices.HostingStartup
  • Microsoft.AspNetCore.AzureAppServicesIntegration
  • Microsoft.AspNetCore.DataProtection.AzureKeyVault
  • Microsoft.AspNetCore.DataProtection.AzureStorage
  • Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv
  • Microsoft.AspNetCore.SignalR.Redis
  • Microsoft.Data.Sqlite
  • Microsoft.Data.Sqlite.Core
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.Sqlite.Core
  • Microsoft.Extensions.Caching.Redis
  • Microsoft.Extensions.Configuration.AzureKeyVault
  • Microsoft.Extensions.Logging.AzureAppServices
  • Microsoft.VisualStudio.Web.BrowserLink

Untuk berpindah dari Microsoft.AspNetCore.All ke Microsoft.AspNetCore.App, jika aplikasi Anda menggunakan API apa pun dari paket di atas, atau paket yang dibawa oleh paket tersebut, tambahkan referensi ke paket tersebut dalam proyek Anda.

Dependensi apa pun dari paket sebelumnya yang sebaliknya bukan dependensi Microsoft.AspNetCore.App tidak disertakan secara implisit. Contohnya:

  • StackExchange.Redis sebagai dependensi Microsoft.Extensions.Caching.Redis
  • Microsoft.ApplicationInsights sebagai dependensi Microsoft.AspNetCore.ApplicationInsights.HostingStartup

Memperbarui ASP.NET Core 2.1

Sebaiknya migrasi ke Microsoft.AspNetCore.App metapackage untuk 2.1 dan yang lebih baru. Untuk tetap menggunakan Microsoft.AspNetCore.All metapackage dan memastikan versi patch terbaru disebarkan:

  • Pada komputer pengembangan dan membangun server: Instal .NET Core SDK terbaru.
  • Pada server penyebaran: Instal runtime .NET Core terbaru. Aplikasi Anda akan diteruskan ke versi terbaru yang diinstal pada mulai ulang aplikasi.