SuperAPI AI 工具集

package-management

通用与其它

查看项目

更新于 10-15 20:05

技能介绍

用途:该技能用于 .NET 项目的 NuGet 包管理,覆盖添加、移除、更新包,为解决方案启用中央包管理(CPM),跨多个项目统一管理包版本,以及排查包冲突与还原问题。

核心原则:不要直接编辑 XML。始终使用 dotnet CLI 管理包,不要手动修改 .csproj 或 Directory.Packages.props。CLI 会校验包是否存在、解析正确版本、处理传递依赖、更新锁文件,并避免拼写错误与格式错误的 XML。

主要能力:

  1. 中央包管理(CPM):在解决方案根目录创建 Directory.Packages.props,设置 ManagePackageVersionsCentrally 为 true,用 PackageVersion 集中声明版本;项目文件中的 PackageReference 不再写版本。可用共享版本变量(如 AkkaVersion、AspireVersion)分组管理相关包,避免版本不匹配。
  2. CLI 命令:dotnet add package、dotnet remove package、dotnet list package(含 --outdated、--include-transitive、--vulnerable、--deprecated)、dotnet restore、dotnet nuget locals all --clear 等。更新包时可编辑 CPM 版本后 restore,或使用 dotnet-outdated 工具。
  3. 包源管理:dotnet nuget list source、dotnet nuget add source 添加私有源,或通过 NuGet.config 配置解决方案级源与凭据。
  4. 常见模式:开发专用包用 PrivateAssets="All",条件包用 Condition 按配置或目标框架引入,必要时用 VersionOverride 覆盖 CPM(应谨慎)。
  5. 可复现构建:通过 RestorePackagesWithLockFile 启用锁文件并提交 packages.lock.json。

限制与注意事项:CPM 不支持版本范围,必须使用精确版本;需要 .NET SDK 6.0.300+、NuGet 6.2+、Visual Studio 2022 17.2+;旧版项目迁移 CPM 可能暴露既有冲突,建议增量迁移;多仓库解决方案需各自维护 Directory.Packages.props。避免直接编辑 XML、在 CPM 下内联版本、混用版本管理方式,以及相关包版本不一致。