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

升级Office365后无法用EF Core+VS2019搭建Access数据库脚手架

解决32位VS2019搭配64位Office365时EF Core Access脚手架失败问题

核心问题

升级到64位Office365后,32位Visual Studio 2019无法调用64位Access DAO组件,导致EF Core Jet脚手架工具因架构不兼容报错,且受Office Click-To-Run限制无法安装32位Access Runtime。

可行解决方案

1. 使用64位.NET Core CLI执行脚手架命令

VS的包管理器控制台是32位进程,无法加载64位DAO组件,改用独立的64位CLI工具可绕过该限制:

  • 确认已安装64位.NET Core 3.1 SDK(与项目EF Core版本匹配)
  • 打开系统的x64命令提示符(开始菜单搜索“命令提示符”,右键选择“以管理员身份运行”;若用Windows Terminal则选择x64配置文件)
  • 导航到项目根目录(包含.csproj文件的文件夹)
  • 执行脚手架命令:
dotnet ef dbcontext scaffold "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=你的数据库路径.mdb" EntityFrameworkCore.Jet --output-dir Models
  • 可选参数说明:--output-dir Models指定实体类生成到Models文件夹,可按需调整。

2. 手动生成实体类与DbContext

若CLI方案仍有问题,可绕过脚手架工具手动实现:

  • 在Access中打开目标数据库,将各表结构导出为CSV或SQL脚本
  • 根据表结构手动创建对应实体类(匹配字段类型、主键等约束)
  • 手动配置DbContext:
using Microsoft.EntityFrameworkCore;

public class YourDbContext : DbContext
{
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseJet(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=你的数据库路径.mdb");
    }

    public DbSet<YourEntity> YourEntities { get; set; }
    // 添加其他对应表的DbSet
}

3. 临时注册32位DAO组件(风险提示)

此方案可能与64位Office365冲突,仅作为临时应急手段:

  • 下载32位Access Runtime安装包,解压提取dao360.dll文件
  • 打开32位命令提示符(路径:C:\Windows\SysWOW64\cmd.exe)
  • 执行注册命令:
regsvr32 "解压路径\dao360.dll"
  • 完成脚手架生成后,执行regsvr32 /u "解压路径\dao360.dll"注销组件,避免与64位Office冲突

关键说明

  • 在VS中直接运行64位项目的脚手架时,因PM控制台是32位进程,必然触发BadImageFormatException,这是架构不兼容导致的,必须使用外部64位CLI工具。
  • Office365 Click-To-Run版本会阻止安装其他版本的Access Runtime,不建议强行安装32位运行时,避免破坏现有Office环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:42:11