You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dotnet build构建时出现NuGet集中管理包NU1604错误

解决NU1604错误及NuGet集中包管理配置问题

问题根源

你的配置问题出在集中包版本管理的文件选择上:NuGet官方推荐使用Directory.Packages.props而非Directory.Build.props来存储集中版本配置。虽然Directory.Build.props能被MSBuild加载,但dotnet CLI在restore阶段无法正确识别其中的PackageVersion配置,导致认定依赖未指定版本下限,触发NU1604警告;而你开启了TreatWarningsAsErrors,警告被转为错误导致构建失败。Rider对非标准配置位置兼容性更好,因此能正常构建。

修复步骤

  1. 创建专用的集中版本管理文件
    在根目录新建Directory.Packages.props文件,内容如下:
<Project>
  <PropertyGroup>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
  </PropertyGroup>

  <ItemGroup>
    <PackageVersion Include="Ardalis.SmartEnum" Version="2.1.0" />
  </ItemGroup>
</Project>
  1. 清理原Directory.Build.props
    移除其中的ManagePackageVersionsCentrally属性和PackageVersion节点,保留其他通用配置:
<Project>
  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  </PropertyGroup>
</Project>
  1. 项目文件保持不变
    你的ProjectFolder.csproj配置无需修改,继续使用无版本的PackageReference即可:
<Project Sdk="Microsoft.NET.Sdk">
    <ItemGroup>
        <PackageReference Include="Ardalis.SmartEnum" />
    </ItemGroup>
</Project>
  1. 重新执行构建流程
    在根目录依次运行:
dotnet clean
dotnet restore
dotnet build

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:30:58