ASP.NET Core 用の Microsoft.AspNetCore.AppMicrosoft.AspNetCore.App for ASP.NET Core

ASP.NET Core 共有フレームワーク (Microsoft.AspNetCore.App) には、マイクロソフトによって開発およびサポートされるアセンブリが含まれます。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 ファイル) のセットであり、ランタイム コンポーネントと Targeting Pack を含みます。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">

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.NETRemotion.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 Core チームによってサポートされているすべてのパッケージが含まれます。Includes all supported packages by the Entity Framework Core team except those that contain third-party dependencies (other than those previously mentioned).

Microsoft.AspNetCore.App パッケージには、ASP.NET Core 2.x および Entity Framework Core 2.x のすべての機能が含まれます。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">


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


上記のマークアップは、一般的な 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. この方法に関して質問がある場合は、Microsoft.AspNetCore.App の暗黙的なバージョンについてのディスカッションで GitHub にコメントしてください。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). .NET ホストのロールフォワードに関する詳細、およびその動作を構成する方法については、.NET ホストのロールフォワードに関するページをご覧ください。For more information regarding dotnet host roll-forward and how to configure its behavior, see dotnet host roll forward.

<Project Sdk は、暗黙的バージョン Microsoft.AspNetCore.App を使用するように Microsoft.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:

    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. (警告 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:

  • 開発用コンピューターおよびビルド サーバーの場合:.NET Core SDK をダウンロードしてインストールします。On development machines and build servers: Download and install the .NET Core SDK.
  • 配置サーバーの場合:.NET Core ランタイムをダウンロードしてインストールします。On deployment servers: Download and install the .NET Core runtime.

アプリケーションは、アプリケーションの再起動時にインストールされている最新バージョンにロールフォワードされます。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. 詳細については、「フレームワーク依存のアプリをロールフォワードする」を参照してください。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.