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

Uwaga

Metapakiet Microsoft.AspNetCore.All nie jest używany w ASP.NET Core 3.0 i nowszych wersjach. Aby uzyskać więcej informacji, zobacz ten problem w serwisie GitHub.

Uwaga

Zalecamy, aby aplikacje przeznaczone dla platformy ASP.NET Core 2.1 i nowsze używały Microsoft.AspNetCore.App metapakiet, a nie tego pakietu. Zobacz Migrowanie z pliku Microsoft.AspNetCore.All do Microsoft.AspNetCore.App w tym artykule.

Ta funkcja wymaga ASP.NET Core 2.x przeznaczonej dla platformy .NET Core 2.x.

Microsoft.AspNetCore.All to metapakiet odwołujący się do struktury udostępnionej. Platforma udostępnionato zestaw zestawów (plików dll), które nie znajdują się w folderach aplikacji. Aby można było uruchomić aplikację, na maszynie musi być zainstalowana platforma udostępniona. Aby uzyskać więcej informacji, zobacz Struktura udostępniona.

Udostępniona struktura, która Microsoft.AspNetCore.All odwołuje się do następujących:

  • Wszystkie obsługiwane pakiety przez zespół ASP.NET Core.
  • Wszystkie obsługiwane pakiety przez platformę Entity Framework Core.
  • Wewnętrzne i zewnętrzne zależności używane przez platformę ASP.NET Core i Entity Framework Core.

Wszystkie funkcje ASP.NET Core 2.x i Entity Framework Core 2.x są zawarte w pakiecie Microsoft.AspNetCore.All . Domyślne szablony projektów przeznaczone dla platformy ASP.NET Core 2.0 używają tego pakietu.

Numer Microsoft.AspNetCore.All wersji metapakiet reprezentuje minimalną wersję ASP.NET Core i wersję platformy Entity Framework Core.

.csproj Poniższy plik odwołuje się do Microsoft.AspNetCore.All metapakiet dla 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>

Niejawne przechowywanie wersji

W programie ASP.NET Core 2.1 lub nowszym można określić Microsoft.AspNetCore.All odwołanie do pakietu bez wersji. Jeśli wersja nie jest określona, niejawna wersja jest określana przez zestaw SDK (Microsoft.NET.Sdk.Web). Zalecamy poleganie na niejawnej wersji określonej przez zestaw SDK i nie jawnie ustawianiu numeru wersji w odwołaniu do pakietu. Jeśli masz pytania dotyczące tego podejścia, pozostaw komentarz usługi GitHub na stronie Dyskusja dla Microsoft.AspNetCore.App niejawnej wersji.

Wersja niejawna jest ustawiona na major.minor.0 dla aplikacji przenośnych. Mechanizm wycofywania struktury udostępnionej uruchamia aplikację w najnowszej zgodnej wersji między zainstalowanymi platformami udostępnionymi. Aby zagwarantować, że ta sama wersja jest używana w środowisku deweloperskim, testowym i produkcyjnym, upewnij się, że ta sama wersja platformy udostępnionej jest zainstalowana we wszystkich środowiskach. W przypadku aplikacji samodzielnie niejawny numer wersji jest ustawiany na major.minor.patch zestaw udostępnionych platform w zainstalowanym zestawie SDK.

Określenie numeru wersji w odwołaniu Microsoft.AspNetCore.All do pakietu nie gwarantuje wybrania tej wersji platformy udostępnionej. Załóżmy na przykład, że określono wersję "2.1.1", ale jest zainstalowana wersja "2.1.3". W takim przypadku aplikacja będzie używać wartości "2.1.3". Mimo że nie jest to zalecane, można wyłączyć wycofywanie (poprawki i/lub drobne). Aby uzyskać więcej informacji na temat wycofywania hosta dotnet i sposobu konfigurowania jego zachowania, zobacz dotnet host roll forward.

Zestaw SDK projektu musi być ustawiony na Microsoft.NET.Sdk.Web wartość w pliku projektu, aby używać niejawnej wersji programu Microsoft.AspNetCore.All. Po określeniu zestawu Microsoft.NET.Sdk SDK (<Project Sdk="Microsoft.NET.Sdk"> w górnej części pliku projektu) zostanie wygenerowane następujące ostrzeżenie:

Ostrzeżenie NU1604: Zależność projektu Microsoft.AspNetCore.All nie zawiera inkluzywnej granicy niższej. Uwzględnij dolną granicę w wersji zależności, aby zapewnić spójne wyniki przywracania.

Jest to znany problem z zestawem .NET Core 2.1 SDK i zostanie rozwiązany w zestawie .NET Core 2.2 SDK.

Migrowanie z pliku Microsoft.AspNetCore.All do Microsoft.AspNetCore.App

Następujące pakiety są zawarte w Microsoft.AspNetCore.All pakiecie, ale nie w pakiecie Microsoft.AspNetCore.App .

  • 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

Aby przejść z Microsoft.AspNetCore.All do Microsoft.AspNetCore.Appprogramu , jeśli aplikacja korzysta z jakichkolwiek interfejsów API z powyższych pakietów lub pakietów przywiezionych przez te pakiety, dodaj odwołania do tych pakietów w projekcie.

Wszelkie zależności powyższych pakietów, które w przeciwnym razie nie są zależnościami Microsoft.AspNetCore.App , nie są uwzględniane niejawnie. Przykład:

  • StackExchange.Redis jako zależność Microsoft.Extensions.Caching.Redis
  • Microsoft.ApplicationInsights jako zależność Microsoft.AspNetCore.ApplicationInsights.HostingStartup

Aktualizacja ASP.NET Core 2.1

Zalecamy migrację Microsoft.AspNetCore.App do metapakieta dla wersji 2.1 lub nowszej. Aby nadal używać Microsoft.AspNetCore.All metapakieta i upewnić się, że jest wdrożona najnowsza wersja poprawki:

  • Na maszynach deweloperskich i serwerach kompilacji: zainstaluj najnowszy zestaw .NET Core SDK.
  • Na serwerach wdrażania: zainstaluj najnowsze środowisko uruchomieniowe platformy .NET Core. Aplikacja zostanie przekazana do najnowszej zainstalowanej wersji po ponownym uruchomieniu aplikacji.