依赖管理是 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>
具体效果如下
