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

如何修复VS2022中Razor Pages CRUD脚手架错误?

修复Razor Pages脚手架生成时的System.InvalidOperationException错误

针对你遇到的Razor CRUD脚手架生成失败问题,可尝试以下解决方案:

  • 统一代码生成工具与EF Core版本
    当前项目中EF Core相关包版本为8.0.8,但Microsoft.VisualStudio.Web.CodeGeneration系列包版本为8.0.5,版本不匹配会引发兼容性异常。将所有代码生成相关包升级至8.0.8,保持与EF Core版本一致:

    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration" Version="8.0.8" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.8" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Version="8.0.8" />
    
  • 移除潜在冲突的第三方包
    项目中引用的Nancy(2.0.0)是独立Web框架,可能与ASP.NET Core代码生成工具存在依赖冲突。暂时移除该包引用,再尝试生成脚手架:

    <!-- 暂时注释或删除该行 -->
    <!-- <PackageReference Include="Nancy" Version="2.0.0" /> -->
    
  • 通过Package Manager Console手动执行生成命令
    若VS界面生成失败,可尝试在Package Manager Console中执行更详细的生成命令,获取精准错误信息:

    Scaffold-RazorPage -Model 你的模型类名 -DataContext 你的DbContext类名 -PagesDirectory Pages/目标目录名
    

    替换命令中的占位符为项目实际的模型类、DbContext类名称及目标页面目录。

  • 清理并重建项目

    1. 右键项目选择「清理」
    2. 手动删除项目根目录下的bin和obj文件夹
    3. 重新生成项目后,再次尝试生成脚手架
  • 检查DbContext配置正确性
    确认你的DbContext正确继承自DbContext或IdentityDbContext,且在Program.cs中已正确注册:

    builder.Services.AddDbContext<YourDbContext>(options =>
        options.UseSqlServer(builder.Configuration.GetConnectionString("YourConnectionString")));
    

    同时验证appsettings.json中的连接字符串配置无误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:05:56