ASP.NET Core용 Microsoft.AspNetCore.AppMicrosoft.AspNetCore.App for ASP.NET Core

ASP.NET Core 공유 프레임워크(Microsoft.AspNetCore.App)에는 Microsoft에서 개발하고 지원하는 어셈블리가 포함되어 있습니다.The ASP.NET Core shared framework (Microsoft.AspNetCore.App) contains assemblies that are developed and supported by Microsoft. Microsoft.AspNetCore.App.NET Core 3.0 이상의 SDK가 설치된 경우에 설치됩니다.Microsoft.AspNetCore.App is installed when the .NET Core 3.0 or later SDK is installed. 공유 프레임워크는 머신에 설치된 어셈블리( .dll 파일) 세트이며 런타임 구성 요소 및 타기팅 팩을 포함합니다.The shared framework is the set of assemblies (.dll files) that are installed on the machine and includes a runtime component and a targeting pack. 자세한 내용은 공유 프레임워크를 참조하세요.For more information, see The shared framework.

  • Microsoft.NET.Sdk.Web SDK를 대상으로 하는 프로젝트는 Microsoft.AspNetCore.App 프레임워크를 암시적으로 참조합니다.Projects that target the Microsoft.NET.Sdk.Web SDK implicitly reference the Microsoft.AspNetCore.App framework.

이러한 프로젝트에는 추가 참조가 필요하지 않습니다.No additional references are required for these projects:

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

ASP .NET Core 공유 프레임워크:The ASP.NET Core shared framework:

  • 타사 종속성을 포함하지 않습니다.Doesn't include third-party dependencies.
  • ASP.NET Core 팀에서 지원되는 모든 패키지를 포함합니다.Includes all supported packages by the ASP.NET Core team.

이 기능을 사용하려면 .NET Core 2.x를 대상으로 하는 ASP.NET Core 2.x가 필요합니다.This feature requires ASP.NET Core 2.x targeting .NET Core 2.x.

ASP.NET Core용 Microsoft.AspNetCore.App 메타패키지와 관련해서 다음 사항을 확인합니다.The Microsoft.AspNetCore.App metapackage for ASP.NET Core:

  • Json.NET, Remotion.LinqIX-Async를 제외한 타사 종속성을 포함하지 마세요.Does not include third-party dependencies except for Json.NET, Remotion.Linq, and IX-Async. 이러한 타사 종속성은 주요 프레임워크 기능이 작동하도록 하는 데 필요한 것으로 간주됩니다.These 3rd-party dependencies are deemed necessary to ensure the major frameworks features function.
  • 이전에 언급한 것 이외의 타사 종속성을 포함하는 것을 제외하고 ASP.NET Core 팀에서 지원하는 모든 패키지를 포함합니다.Includes all supported packages by the ASP.NET Core team except those that contain third-party dependencies (other than those previously mentioned).
  • 이전에 언급한 것 이외의 타사 종속성을 포함하는 것을 제외하고 Entity Framework 팀에서 지원하는 모든 패키지를 포함합니다.Includes all supported packages by the Entity Framework Core team except those that contain third-party dependencies (other than those previously mentioned).

ASP.NET Core 2.x 및 Entity Framework Core 2.x의 모든 기능은 Microsoft.AspNetCore.App 패키지에 포함됩니다.All the features of ASP.NET Core 2.x and Entity Framework Core 2.x are included in the Microsoft.AspNetCore.App package. ASP.NET Core 2.x를 대상으로 하는 기본 프로젝트 템플릿은 이 패키지를 사용합니다.The default project templates targeting ASP.NET Core 2.x use this package. ASP.NET Core 2.x와 Entity Framework Core 2.x를 대상으로 하는 애플리케이션은 Microsoft.AspNetCore.App 패키지를 사용하는 것이 좋습니다.We recommend applications targeting ASP.NET Core 2.x and Entity Framework Core 2.x use the Microsoft.AspNetCore.App package.

Microsoft.AspNetCore.App 메타패키지의 버전 번호는 최소 ASP.NET Core 버전 및 Entity Framework Core 버전을 나타냅니다.The version number of the Microsoft.AspNetCore.App metapackage represents the minimum ASP.NET Core version and Entity Framework Core version.

Microsoft.AspNetCore.App 메타패키지 사용 시에는 앱을 보호하기 위한 버전 제한 사항이 적용됩니다.Using the Microsoft.AspNetCore.App metapackage provides version restrictions that protect your app:

  • Microsoft.AspNetCore.App에 패키지에 대한 전이적인(직접적이지 않은) 종속성을 가진 패키지가 포함되어 있고, 이러한 버전 번호가 서로 다를 경우 NuGet에서 오류를 생성합니다.If a package is included that has a transitive (not direct) dependency on a package in Microsoft.AspNetCore.App, and those version numbers differ, NuGet will generate an error.
  • 앱에 추가된 다른 패키지는 Microsoft.AspNetCore.App에 포함된 패키지 버전을 변경할 수 없습니다.Other packages added to your app cannot change the version of packages included in Microsoft.AspNetCore.App.
  • 버전 일관성은 안정적인 환경을 보장합니다.Version consistency ensures a reliable experience. Microsoft.AspNetCore.App은 동일한 앱에서 함께 사용되는 관련 비트의 테스트되지 않은 버전 조합을 방지하도록 설계되었습니다.Microsoft.AspNetCore.App was designed to prevent untested version combinations of related bits being used together in the same app.

Microsoft.AspNetCore.App 메타패키지를 사용하는 애플리케이션은 ASP.NET Core 공유 프레임워크를 자동으로 활용합니다.Applications that use the Microsoft.AspNetCore.App metapackage automatically take advantage of the ASP.NET Core shared framework. Microsoft.AspNetCore.App 메타패키지를 사용할 경우, 참조되는 ASP.NET Core NuGet 패키지의 자산이 애플리케이션을 사용하여 배포되지 않습니다. 이러한 자산은 — ASP.NET Core 공유 프레임워크에 포함됩니다.When you use the Microsoft.AspNetCore.App metapackage, no assets from the referenced ASP.NET Core NuGet packages are deployed with the application—the ASP.NET Core shared framework contains these assets. 공유 프레임워크의 자산은 애플리케이션 시작 시간 단축을 위해 미리 컴파일됩니다.The assets in the shared framework are precompiled to improve application startup time. 자세한 내용은 공유 프레임워크를 참조하세요.For more information, see The shared framework.

다음 프로젝트 파일은 ASP.NET Core용 Microsoft.AspNetCore.App 메타패키지를 참조하며 일반적인 ASP.NET Core 2.2 템플릿을 나타냅니다.The following project file references the Microsoft.AspNetCore.App metapackage for ASP.NET Core and represents a typical ASP.NET Core 2.2 template:

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

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

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

</Project>

이전의 표시는 일반적인 ASP.NET Core 2.x 템플릿을 나타냅니다.The preceding markup represents a typical ASP.NET Core 2.x template. Microsoft.AspNetCore.App 패키지 참조의 버전 번호는 지정하지 않습니다.It doesn't specify a version number for the Microsoft.AspNetCore.App package reference. 버전이 지정되지 않은 경우 SDK에서 암시적 버전, 즉 Microsoft.NET.Sdk.Web을 지정합니다.When the version is not specified, an implicit version is specified by the SDK, that is, Microsoft.NET.Sdk.Web. SDK에서 지정하는 암시적 버전을 사용하고, 패키지 참조에 버전 번호를 명시적으로 설정하지 않는 것이 좋습니다.We recommend relying on the implicit version specified by the SDK and not explicitly setting the version number on the package reference. 이 접근 방식에 대한 질문이 있는 경우 GitHub의 Microsoft.AspNetCore.App 암시적 버전에 대한 토론에 의견을 남겨 주세요.If you have questions on this approach, leave a GitHub comment at the Discussion for the Microsoft.AspNetCore.App implicit version.

휴대용 앱의 암시적 버전은 major.minor.0으로 설정됩니다.The implicit version is set to major.minor.0 for portable apps. 공유 프레임워크 롤포워드 메커니즘은 설치된 공유 프레임워크 중 최신 호환 버전에서 앱을 실행합니다.The shared framework roll-forward mechanism will run the app on the latest compatible version among the installed shared frameworks. 개발, 테스트 및 프로덕션에서 동일한 버전이 사용되도록 하려면 모든 환경에 동일한 버전의 공유 프레임워크를 설치하도록 하세요.To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. 자체 포함 앱의 경우 암시적 버전 번호가 설치된 SDK에 포함된 공유 프레임워크의 major.minor.patch로 설정됩니다.For self contained apps, the implicit version number is set to the major.minor.patch of the shared framework bundled in the installed SDK.

Microsoft.AspNetCore.App 참조에 버전 번호를 지정해도 해당 버전의 고유 프레임워크가 선택된다고 보장할 수 없습니다.Specifying a version number on the Microsoft.AspNetCore.App reference does not guarantee that version of the shared framework will be chosen. 예를 들어 "2.2.1" 버전을 지정했는데 "2.2.3"이 설치되는 경우가 있습니다.For example, suppose version "2.2.1" is specified, but "2.2.3" is installed. 이 경우 앱은 "2.2.3"을 사용합니다.In that case, the app will use "2.2.3". 권장되는 방법은 아니지만 롤포워드를 비활성화할 수 있습니다(패치 및/또는 부 버전).Although not recommended, you can disable roll forward (patch and/or minor). DotNet 호스트 롤포워드 및 이 동작을 구성하는 방법에 대한 자세한 내용은 DotNet 호스트 롤포워드를 참조하세요.For more information regarding dotnet host roll-forward and how to configure its behavior, see dotnet host roll forward.

암시적 버전 Microsoft.AspNetCore.App을 사용하려면 <Project SdkMicrosoft.NET.Sdk.Web으로 설정해야 합니다.<Project Sdk must be set to Microsoft.NET.Sdk.Web to use the implicit version Microsoft.AspNetCore.App. <Project Sdk="Microsoft.NET.Sdk">가 후행 .Web 없이 사용되는 경우:When <Project Sdk="Microsoft.NET.Sdk"> (without the trailing .Web) is used:

  • 다음 경고가 생성됩니다.The following warning is generated:

    경고 NU1604: 프로젝트 종속성 Microsoft.AspNetCore.App에 포함 하한이 포함되어 있지 않습니다. 일관된 복원 결과를 얻으려면 종속 버전의 하한을 포함하세요.Warning NU1604: Project dependency Microsoft.AspNetCore.App does not contain an inclusive lower bound. Include a lower bound in the dependency version to ensure consistent restore results.

  • 이것은 .NET Core 2.1 SDK의 알려진 문제입니다.This is a known issue with the .NET Core 2.1 SDK.

ASP.NET Core 업데이트Update ASP.NET Core

Microsoft.AspNetCore.App 메타패키지는 NuGet에서 업데이트된 기존 패키지가 아닙니다.The Microsoft.AspNetCore.App metapackage isn't a traditional package that's updated from NuGet. Microsoft.NETCore.App과 유사한 Microsoft.AspNetCore.App은 공유 런타임을 나타내며, NuGet 외부에서 처리되는 특별한 버전 관리 의미 체계가 있습니다.Similar to Microsoft.NETCore.App, Microsoft.AspNetCore.App represents a shared runtime, which has special versioning semantics handled outside of NuGet. 자세한 내용은 패키지, 메타패키지 및 프레임워크를 참조하세요.For more information, see Packages, metapackages and frameworks.

ASP.NET Core를 업데이트하려면:To update ASP.NET Core:

애플리케이션을 다시 시작하면 애플리케이션이 최신 설치 버전으로 롤포워드됩니다.Applications will roll forward to the latest installed version on application restart. 프로젝트 파일에서 Microsoft.AspNetCore.App 버전 번호를 업데이트할 필요는 없습니다.It's not necessary to update the Microsoft.AspNetCore.App version number in the project file. 자세한 내용은 Framework 종속 앱 롤포워드를 참조하세요.For more information, see Framework-dependent apps roll forward.

애플리케이션에서 이전에 Microsoft.AspNetCore.All을 사용한 경우 Microsoft.AspNetCore.All에서 Microsoft.AspNetCore.App으로 마이그레이션을 참조하세요.If your application previously used Microsoft.AspNetCore.All, see Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App.