VS2022中VB WFA项目添加Service-based数据库报格式错误
解决Visual Basic WFA添加Service-based数据库时的架构不兼容错误
问题根源
你遇到的“An attempt was made to load a program with an incorrect format”错误,核心原因是Arm64架构的Windows 11虚拟机中,部分数据库组件(如SQL Server LocalDB)仍为x86/x64版本,与Arm环境不兼容。以下是针对性解决步骤:
1. 强制项目以x64架构编译运行
- 右键VB WFA项目 → 选择「属性」
- 切换到「生成」选项卡,将「平台目标」从「Any CPU」改为「x64」
- 若勾选了「首选32位」,必须取消该选项,保存设置后重启Visual Studio
2. 安装Arm64版SQL Server LocalDB
Service-based数据库默认依赖SQL Server LocalDB,当前你可能安装的是x86/x64版本:
- 卸载控制面板中所有「SQL Server LocalDB」相关条目
- 下载并安装Arm64架构的SQL Server LocalDB安装包(注意匹配VS2022对应的SQL Server版本)
3. 调整Parallels Desktop虚拟机设置
- 打开Parallels Desktop,选中Windows 11虚拟机 → 点击「设置」→「硬件」→「CPU与内存」
- 勾选「启用嵌套虚拟化」,确认虚拟机架构设置为「x86-64」(避免Arm兼容层的干扰)
4. 备选方案:改用SQLite数据库
如果LocalDB的Arm64兼容性问题无法彻底解决,可替换为轻量且架构兼容的SQLite:
- 打开NuGet包管理器,搜索并安装
Microsoft.Data.Sqlite - 手动将
.sqlite数据库文件添加到项目,通过代码连接即可,无需依赖LocalDB服务
内容的提问来源于stack exchange,提问作者Max S.
相关产品推荐
相关产品推荐

