Visual Studio 2022添加ASP.NET Core MVC scaffolded项时包还原失败求助
解决ASP.NET Core MVC Scaffolding时包还原失败的问题
排查与修复步骤
1. 清理本地NuGet缓存
打开Visual Studio的工具 > NuGet包管理器 > 包管理器设置,找到NuGet包管理器 > 常规,点击清除所有NuGet缓存。也可通过命令行执行:
dotnet nuget locals all --clear
2. 统一项目包版本
打开项目的.csproj文件,确保所有EF Core相关包及代码生成包版本完全匹配(比如统一为6.0.x稳定版),示例配置:
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.25"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.25" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.16" />
注意:Microsoft.VisualStudio.Web.CodeGeneration.Design是Scaffolding必需依赖,若未安装需手动添加。
3. 手动还原并重建项目
- 右键项目选择还原NuGet包
- 执行生成 > 清理解决方案,再执行生成 > 生成解决方案
- 重新尝试添加Scaffolded项
4. 检查NuGet源配置
在包管理器设置的包源中,确认NuGet.org源处于启用状态,地址为https://api.nuget.org/v3/index.json,无错误的私有源或镜像干扰。
5. 修复Visual Studio组件
打开Visual Studio Installer,选择修改,确保勾选ASP.NET和Web开发、.NET Core跨平台开发组件,完成修复后重启VS。
6. 尝试命令行生成Scaffold
若界面操作失败,用dotnet命令行执行(替换实体类和DbContext名称):
dotnet aspnet-codegenerator controller -name MoviesController -m Movie -dc MovieContext -outDir Controllers
内容的提问来源于stack exchange,提问作者Gurdeep
相关产品推荐
相关产品推荐

