You need to enable JavaScript to run this app. 生成解决方案时.csproj文件的NuGet包版本自动回退该如何处理
优惠活动
大模型
产品
解决方案
定价
更多

生成解决方案时.csproj文件的NuGet包版本自动回退该如何处理

问题成因

  • 项目目标框架为.NET Core 3.1,配套的Microsoft.VisualStudio.Web.CodeGeneration.Design 3.x版本存在强依赖限制,必须搭配3.1.x版本的EF Core相关包使用。当你手动将EF Core主包升级为5.0.x后,生成项目时NuGet会自动执行依赖对齐逻辑,将EF Core全家桶版本回退到和脚手架生成工具匹配的3.1.x版本。
  • 手动修改csproj时未完成所有EF生态包的版本对齐,EF Core主包、SqlServer驱动、Tools工具包版本不一致时,也会触发NuGet的依赖仲裁机制,自动将所有相关包回退到版本一致的低版本。
  • 本地项目的obj目录下存在旧的引用缓存,生成时优先读取缓存配置,也会导致修改后的版本号被覆盖。

解决方案

方案1:保留.NET Core 3.1框架,统一使用3.1.x版本依赖

如果不需要使用EF Core 5.x的新特性,直接将所有EF相关包版本和脚手架工具对齐即可,修改csproj的包引用节点如下:

<ItemGroup>
  <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.15" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.15" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.15">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
  <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.5" />
</ItemGroup>

修改完成后依次执行以下操作:

  • 右键解决方案选择「清理解决方案」
  • 手动删除项目根目录下的obj和bin文件夹
  • 右键解决方案选择「还原NuGet包」后重新生成,版本回退问题会消失,Razor页面脚手架也可正常使用。

方案2:升级项目框架到.NET 5,使用5.0.x全版本依赖

如果需要使用EF Core 5.x的功能,先升级项目目标框架再同步所有依赖版本:

  1. 将PropertyGroup节点中的TargetFramework值修改为net5.0
  2. 替换所有相关包的版本为匹配的5.0.x版本,修改后的包引用节点如下:
<ItemGroup>
  <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="5.0.0" />
  <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.17" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.17" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.17">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
  <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />
</ItemGroup>
  1. 执行方案1中的清理、删除缓存、还原包操作后重新生成即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 21:54:03