Microsoft.AspNetCore.App dla ASP.NET Core

Platforma udostępniona ASP.NET Core (Microsoft.AspNetCore.App) zawiera zestawy opracowane i obsługiwane przez firmę Microsoft. Microsoft.AspNetCore.App jest instalowany po zainstalowaniu zestawu .NET Core 3.0 lub nowszego zestawu SDK . Platforma udostępnionato zestaw zestawów (plików dll), które są zainstalowane na maszynie i zawierają składnik środowiska uruchomieniowego i pakiet docelowy. Aby uzyskać więcej informacji, zobacz Struktura udostępniona.

  • Projekty przeznaczone dla zestawu Microsoft.NET.Sdk.Web SDK niejawnie odwołują się do platformy Microsoft.AspNetCore.App .

Dla tych projektów nie są wymagane żadne dodatkowe odwołania:

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

Platforma udostępniona ASP.NET Core:

  • Nie obejmuje zależności innych firm.
  • Obejmuje wszystkie obsługiwane pakiety przez zespół ASP.NET Core.

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

Metapakiet Microsoft.AspNetCore.App dla ASP.NETCore:

  • Nie obejmuje zależności innych firm z wyjątkiem Json.NET, Remotion.Linq i IX-Async. Te zależności innych firm są uważane za niezbędne do zapewnienia funkcji głównych struktur.
  • Obejmuje wszystkie obsługiwane pakiety przez zespół ASP.NET Core z wyjątkiem tych, które zawierają zależności innych firm (inne niż wymienione wcześniej).
  • Obejmuje wszystkie obsługiwane pakiety przez zespół programu Entity Framework Core, z wyjątkiem tych, które zawierają zależności innych firm (inne niż wymienione wcześniej).

Wszystkie funkcje ASP.NET Core 2.x i Entity Framework Core 2.x są zawarte w pakiecie Microsoft.AspNetCore.App . Domyślne szablony projektów przeznaczone dla ASP.NET Core 2.x używają tego pakietu. Zalecamy używanie pakietu przez aplikacje przeznaczone dla platform ASP.NET Core 2.x i Entity Framework Core 2.x Microsoft.AspNetCore.App .

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

Korzystanie z Microsoft.AspNetCore.App metapakietowego zapewnia ograniczenia wersji, które chronią aplikację:

  • Jeśli pakiet jest dołączony, który ma przechodnią (nie bezpośrednią) zależność od pakietu w Microsoft.AspNetCore.Appsystemie , a te numery wersji różnią się, nuGet wygeneruje błąd.
  • Inne pakiety dodane do aplikacji nie mogą zmienić wersji pakietów zawartych w pliku Microsoft.AspNetCore.App.
  • Spójność wersji zapewnia niezawodne środowisko pracy. Microsoft.AspNetCore.App została zaprojektowana w celu zapobiegania nietestowanym kombinacjom wersji powiązanych bitów używanych razem w tej samej aplikacji.

Aplikacje korzystające z Microsoft.AspNetCore.App metapakiet automatycznie korzystają z platformy udostępnionej ASP.NET Core. W przypadku korzystania z metapakażu Microsoft.AspNetCore.Appżadne zasoby z przywoływanego pakietu NuGet ASP.NET Core są wdrażane z aplikacją — platforma udostępniona ASP.NET Core zawiera te zasoby. Zasoby w strukturze udostępnionej są wstępnie skompilowane, aby poprawić czas uruchamiania aplikacji. Aby uzyskać więcej informacji, zobacz Struktura udostępniona.

Następujący plik projektu odwołuje się do Microsoft.AspNetCore.App metapakietów dla ASP.NET Core i reprezentuje typowy szablon ASP.NET Core 2.2:

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

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

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

</Project>

Powyższy znacznik reprezentuje typowy szablon ASP.NET Core 2.x. Nie określa numeru wersji odwołania do Microsoft.AspNetCore.App pakietu. Jeśli wersja nie jest określona, niejawna wersja jest określana przez zestaw SDK, Microsoft.NET.Sdk.Webczyli . 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 w dyskusji dotyczącej Microsoft.AspNetCore.App niejawnej wersji.

Wersja niejawna jest ustawiona na major.minor.0 dla aplikacji przenośnych. Mechanizm wycofywania struktury udostępnionej uruchomi aplikację w najnowszej zgodnej wersji wśród zainstalowanych platform udostępnionych. 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 platformę udostępnioną powiązaną z zainstalowanym zestawem SDK.

Określenie numeru wersji w odwołaniu Microsoft.AspNetCore.App nie gwarantuje, że zostanie wybrana wersja platformy udostępnionej. Załóżmy na przykład, że określono wersję "2.2.1", ale jest zainstalowana wersja "2.2.3". W takim przypadku aplikacja będzie używać wartości "2.2.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.

<Project Sdk musi być ustawiona na wartość , aby Microsoft.NET.Sdk.Web używać niejawnej wersji Microsoft.AspNetCore.App. Gdy <Project Sdk="Microsoft.NET.Sdk"> (bez końcowego .Web) jest używany:

  • Zostanie wygenerowane następujące ostrzeżenie:

    Ostrzeżenie NU1604: zależność projektu Microsoft.AspNetCore.App nie zawiera inkluzywnego dolnego ograniczenia. 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.

Aktualizowanie ASP.NET Core

Metapakiet Microsoft.AspNetCore.App nie jest tradycyjnym pakietem, który jest aktualizowany z pakietu NuGet. Podobnie jak Microsoft.NETCore.Appw przypadku elementu , Microsoft.AspNetCore.App reprezentuje współużytkowane środowisko uruchomieniowe, które ma specjalne semantyki przechowywania wersji poza programem NuGet. Aby uzyskać więcej informacji, zobacz Pakiety, metapakiet i struktury.

Aby zaktualizować ASP.NET Core:

  • Na maszynach deweloperskich i serwerach kompilacji: pobierz i zainstaluj zestaw .NET Core SDK.
  • Na serwerach wdrażania: pobierz i zainstaluj środowisko uruchomieniowe platformy .NET Core.

Aplikacje będą przekazywane do najnowszej zainstalowanej wersji po ponownym uruchomieniu aplikacji. Nie jest konieczne zaktualizowanie Microsoft.AspNetCore.App numeru wersji w pliku projektu. Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji zależnych od platformy.

Jeśli aplikacja była wcześniej używana Microsoft.AspNetCore.All, zobacz Migrowanie z pliku Microsoft.AspNetCore.All do Microsoft.AspNetCore.App.