Microsoft.AspNetCore.App dla ASP.NET Core
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Ważne
Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
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ępniona to zestaw zestawów (.dll plików), 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 platformyMicrosoft.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.NET Core:
- 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.App
systemie , 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.Web
czyli . 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.App
w 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.