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

本文介绍如何添加和删除包、项目和程序集依赖项。

添加和删除包依赖项

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

使用命令行界面 (CLI)

若要添加依赖项,请针对您所用的 SDK 版本运行 dotnet package 命令:

dotnet package add Microsoft.EntityFrameworkCore

若要移除依赖项,请针对您的 SDK 版本运行 dotnet package 命令:

dotnet package remove Microsoft.EntityFrameworkCore

编辑项目文件

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

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

  <PropertyGroup>
    ...
  </PropertyGroup>

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

</Project>

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

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

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

仅当针对该目标的构建发生时,上述示例中的依赖项才有效。 条件 $(TargetFramework) 中是在项目中设置的 MSBuild 属性。 对于最常见的 .NET 应用程序,无需执行此作。

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

有关 PackageReference项的更多信息,请参阅.NET SDK 项目的 MSBuild 参考

添加和删除项目引用

当项目依赖于另一个项目时,请使用项目到项目引用。 若要添加和删除项目引用,请编辑项目文件或使用 CLI。

使用命令行界面 (CLI)

若要添加项目引用,请运行适用于你的 SDK 版本的 dotnet reference 命令。

dotnet reference add ../MyLibrary/MyLibrary.csproj

若要删除项目引用,请针对 SDK 版本运行以下命令:

dotnet reference remove ../MyLibrary/MyLibrary.csproj

编辑项目文件

项目 <ProjectReference> 文件元素标识所引用项目的路径。 若要添加项目引用,请在元素中添加项<ProjectReference><ItemGroup>。 可以添加到现有 <ItemGroup>,也可以新建一个元素。

<ItemGroup>
  <ProjectReference Include="../MyLibrary/MyLibrary.csproj" />
</ItemGroup>

若要删除项目引用,请从项目文件中删除 <ProjectReference> 该元素。

有关 ProjectReference 此项的详细信息,请参阅 常见 MSBuild 项目项

添加和删除程序集引用

可以通过项目文件添加和删除程序集引用。 .NET CLI 不提供用于添加或删除程序集引用的命令。

若要引用不属于项目或包的.NET程序集,请将元素添加到<Reference>项目文件。 使用 <HintPath> 元素指定程序集的相对路径或绝对路径:

<ItemGroup>
  <Reference Include="MyAssembly">
    <HintPath>lib/MyAssembly.dll</HintPath>
  </Reference>
</ItemGroup>

若要删除程序集引用,请从项目文件中删除其 <Reference> 元素。

有关 Reference 项目的详细信息,请参阅 常见 MSBuild 项目项

提示

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

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

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

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

另请参阅