.NET7 一个实用功能-中央包管理

依赖管理是 NuGet 的核心功能。Nuget管理单个项目的依赖关系很容易,只需要每个项目维护自己的Nuget依赖与对应版本。

但是,管理多项目解决方案的依赖关系可能会变得很困难,因为它们的规模和复杂性开始扩大,每个项目依赖的相同的Nuget包的版本可能不同。

在您管理许多不同项目的公共依赖项的情况下,您可以利用 NuGet 的中央包管理功能从一个位置轻松完成所有这些工作。

要开始使用中央包管理,您可以在解决方案的根目录中创建一个 Directory.Packages.props 文件,并将文件中的 ManagePackageVersionsCentrally 属性设置为 true。.

在文件内部,您可以使用 <PackageVersion /> 定义包 ID 和版本。

<Project>  <PropertyGroup>    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>  </PropertyGroup>  <ItemGroup>    <PackageVersion Include="Newtonsoft.Json" Version="12.0.3" />    <PackageVersion Include="Swashbuckle.AspNetCore" Version="6.3.0" />    <PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="7.0.0" />  </ItemGroup></Project>

在解决方案中的子项目中,您可以使用您熟悉和喜爱的<PackageReference />语法来管理包,但不需要设置包的版本。

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>    <TargetFramework>net7.0</TargetFramework>    <Nullable>enable</Nullable>    <ImplicitUsings>enable</ImplicitUsings>  </PropertyGroup>
  <ItemGroup>    <PackageReference Include="Microsoft.AspNetCore.OpenApi"  />    <PackageReference Include="Swashbuckle.AspNetCore" />    <PackageReference Include="Newtonsoft.Json" />  </ItemGroup>
</Project>

具体效果如下

.NET7 一个实用功能-中央包管理