Microsoft.AspNetCore.App for ASP.NET CoreMicrosoft.AspNetCore.App for ASP.NET Core

    • 面向 Microsoft.NET.Sdk.Web SDK 的项目隐式引用 Microsoft.AspNetCore.App 框架。

    对于这些项目,不需要其他引用:

    ASP.NET Core 共享框架:

    • 不包括第三方依赖项。
    • 包括 ASP.NET Core 团队支持的所有包。

    此功能需要面向 .NET Core 2.x 的 ASP.NET Core 2.x。

    适用于 ASP.NET Core 的 元包

    • 不包括第三方依赖项,、Remotion.Linq 和 除外。为确保正常使用主要框架功能,这些第三方依赖项均为必要条件。
    • 包括 ASP.NET Core 团队支持的所有软件包,包含第三方依赖项的软件包(不包括上文所述)除外。
    • 包括 Entity Framework Core 团队支持的所有软件包,包含第三方依赖项的软件包(不包括上文所述)除外。

    Microsoft.AspNetCore.App 包中包含了 ASP.NET Core 2.x 和 Entity Framework Core 2.x 的所有功能。面向 ASP.NET Core 2.x 的默认项目模板使用此包。建议面向 ASP.NET Core 2.x 和 Entity Framework Core 2.x 的应用程序使用 Microsoft.AspNetCore.App 包。

    使用 Microsoft.AspNetCore.App 元包可提供用于保护应用的版本限制:

    • 添加到应用的其他包无法更改 Microsoft.AspNetCore.App 中包含的包版本。
    • 版本一致性能确保可靠的体验。Microsoft.AspNetCore.App 旨在防止在同一应用中结合使用未经测试的相关位版本组合。

    使用 Microsoft.AspNetCore.App 元包的应用程序会自动使用 ASP.NET Core 共享框架。使用 Microsoft.AspNetCore.App 元包时,应用程序不部署所引用的 ASP.NET Core NuGet 包中的任何资产 — .NET Core 共享框架包含这些资产 。共享框架中的资产已经过预编译,以便缩短应用程序启动时间。有关详细信息,请参阅共享框架

    以下项目文件为 ASP.NET Core 引用 元包,,它表示一种典型的 ASP.NET Core 2.2 模板:

    1. <Project Sdk="Microsoft.NET.Sdk.Web">
    2. <PropertyGroup>
    3. <TargetFramework>netcoreapp2.2</TargetFramework>
    4. </PropertyGroup>
    5. <PackageReference Include="Microsoft.AspNetCore.App" />
    6. </ItemGroup>
    7. </Project>

    前面的标记表示典型的 ASP.NET Core 2.x 模板。它不会为 Microsoft.AspNetCore.App 包引用指定版本号。如果未指定版本,SDK 会指定版本,即 。建议使用 SDK 指定的隐式版本,而不是在包引用上显式设置版本号。如果对这种方法有任何疑问,可以在 Microsoft.AspNetCore.App 隐式版本讨论上发表 GitHub 评论。

    对于便携式应用,隐式版本设置为 major.minor.0共享框架前滚机制将在安装的共享框架的最新兼容版本上运行应用。为确保在开发、测试和生产中使用相同的版本,请确保在所有环境中都安装相同版本的共享框架。对于独立应用,将隐式版本号设置为在已安装的 SDK 中捆绑的共享框架的 major.minor.patch

    <Project Sdk 必须设置为 Microsoft.NET.Sdk.Web 以使用隐式版本 Microsoft.AspNetCore.App使用 <Project Sdk="Microsoft.NET.Sdk">(不带尾随 .Web)时:

    • 生成以下警告:

    警告 NU1604:项目依赖项 Microsoft.AspNetCore.App 不包括包含下限。请在依赖项版本中包括下限,以确保一致的还原结果。

    • 这是 .NET Core 2.1 SDK 的一个已知问题。

    Microsoft.AspNetCore.App元包不是从 NuGet 更新的传统包。类似于 Microsoft.NETCore.AppMicrosoft.AspNetCore.App 表示共享运行时,它具有在 NuGet 之外处理的特殊版本控制语义。有关详细信息,请参阅。

    更新 ASP.NET Core:

    • 在开发计算机和生成服务器上:下载并安装 .NET Core SDK
    • 在部署服务器上:下载并安装 。

    如果应用程序之前使用 ,请参阅从 Microsoft.AspNetCore.All 迁移到 Microsoft.AspNetCore.App