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

在Visual Studio 2022中添加EF MVC控制器及视图时遇包还原失败错误

排查与修复方案

1. 统一NuGet包版本

你的Microsoft.VisualStudio.Web.CodeGeneration.Design版本(6.0.16)和其他EF相关包(6.0.28)版本不一致,这是代码生成器报错的核心诱因之一:

  • 卸载所有重复安装的Microsoft.VisualStudio.Web.CodeGeneration.Design包
  • 安装6.0.28版本的该包,确保和Microsoft.EntityFrameworkCore系列包版本完全匹配

2. 清理NuGet缓存并强制还原

  • 打开Visual Studio,依次点击「工具」→「NuGet包管理器」→「管理解决方案的NuGet包」
  • 点击右上角设置图标,选择「清除所有NuGet缓存」
  • 在「包管理器控制台」执行命令:dotnet restore,强制重新还原所有依赖包

3. 检查并修正项目文件(.csproj)

手动打开项目的.csproj文件,删除重复的PackageReference节点,确保所有相关包的版本统一,示例配置如下:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

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

</Project>

4. 验证数据库连接字符串

确认appsettings.json中的连接字符串能正常访问LocalDB的TeamPlayers表:

"ConnectionStrings": {
  "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=你的数据库名;Trusted_Connection=True;MultipleActiveResultSets=true"
}

可以通过「SQL Server对象资源管理器」测试连接,确保数据库和表存在、权限正常。

5. 尝试命令行生成控制器

如果Visual Studio图形界面生成失败,用命令行工具生成并查看详细错误:
在项目根目录打开命令提示符,执行:

dotnet aspnet-codegenerator controller -name TeamPlayersController -m TeamPlayers -dc 你的DbContext类名 --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries

替换命令中的TeamPlayers(你的实体类名)和你的DbContext类名为实际名称,命令执行后会输出具体错误信息,帮助定位问题。

6. 检查Visual Studio版本

确保使用Visual Studio 2022(17.0及以上版本),旧版本对.NET 6的代码生成工具支持不完善,可能导致兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 10:15:21