管理 .NET 应用程序中的包依赖项

本文介绍如何通过编辑项目文件或使用 CLI 来添加和删除包依赖项。

<PackageReference> 元素

<PackageReference> 项目文件元素具有以下结构:

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" />

Include 特性指定要添加到项目的包的 ID。 Version 特性指定要获取的版本。 版本根据 NuGet 版本规则进行指定。

使用条件来添加仅在特定目标中可用的依赖项,如以下示例所示:

<PackageReference Include="PACKAGE_ID" Version="PACKAGE_VERSION" Condition="'$(TargetFramework)' == 'netcoreapp2.1'" />

上述示例中的依赖项只有在对给定目标生成时才有效。 条件中的 $(TargetFramework) 是将在项目中设置的 MSBuild 属性。 对于大多数常见的 .NET 应用程序,无需这样做。

添加和移除依赖项

可以通过编辑项目文件或通过 .NET CLI 命令来添加和移除依赖项。

编辑项目文件

要添加依赖项,请在 <ItemGroup> 元素内添加 <PackageReference> 项。 可以添加到现有 <ItemGroup>,也可以新建一个元素。

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

  <PropertyGroup>
    ...
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.2" />
  </ItemGroup>

</Project>

要移除依赖项,请从项目文件中移除其 <PackageReference> 项。

使用 CLI

若要添加依赖项,请运行 dotnet add package 命令,如以下示例中所示:

dotnet add package Microsoft.EntityFrameworkCore

若要删除依赖项,请运行 dotnet remove package 命令,如以下示例中所示:

dotnet remove package Microsoft.EntityFrameworkCore

提示

  • 请勿在引用包的 .targets 或 .props 文件中加入还原操作的输入。 这些输入可以包括 PackageReference 项、 ExcludeAssets 属性、要使用的 NuGet 源或其他 NuGet 配置。 在 NuGet 还原完成后,才会使用包中的 .targets 和 .props 文件。 还原所需的任何内容都需要位于项目本身的项目文件或 .targets 文件中,而不是包依赖项中。

  • 如果要在控制台应用程序或类库中使用 ASP.NET API,请将 FrameworkReference 项添加到项目文件:

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

    有关详细信息,请参阅使用 ASP.NET Core 共享框架

另请参阅