Windows 11 ARM64环境下SQLite.Interop.dll加载问题求助
解决Windows 11 ARM64下SQLite.Interop.dll原生库构建问题
针对Windows 11 ARM64环境下无法加载SQLite.Interop.dll的问题,以下是经过验证的原生ARM64库构建及集成方案:
一、准备构建环境
- 安装Visual Studio 2022,必须勾选
.NET桌面开发和C++ ARM64开发工具集(可在VS安装器的「单个组件」中找到) - 确保安装支持ARM64的最新Windows SDK
二、获取并准备源码
- 获取最新版SQLite核心源码(sqlite-amalgamation包,包含合并后的单文件C源码)
- 获取对应版本的System.Data.SQLite源码包,解压后定位到
SQLite.Interop的VC++项目文件
三、配置Interop项目
- 打开
SQLite.Interop.vcxproj项目文件 - 将项目目标平台切换为ARM64,确保Debug和Release配置均应用该平台
- 调整项目属性:
- 「常规」:平台工具集选择
v143(VS2022对应版本) - 「C/C++ → 常规」:附加包含目录添加sqlite-amalgamation源码所在路径
- 「链接器 → 输入」:确认已添加必要的系统依赖库(如
kernel32.lib)
- 「常规」:平台工具集选择
四、构建ARM64原生库
- 在Visual Studio中选择ARM64平台,右键项目选择「生成」(优先构建Release版本)
- 构建完成后,在项目输出目录(如
bin/ARM64/Release)获取SQLite.Interop.dll及配套的.lib文件
五、集成到.NET项目
- 在项目根目录创建
runtimes/win-arm64/native目录结构 - 将生成的
SQLite.Interop.dll放入该目录 - 配置项目:
- 项目属性 → 生成 → 目标平台设为ARM64,取消勾选「首选32位」
- 在项目文件(.csproj)中添加以下配置,确保原生库被复制到输出目录:
<ItemGroup> <NativeLibrary Include="runtimes/win-arm64/native/SQLite.Interop.dll"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </NativeLibrary> </ItemGroup>
常见问题排查
- 若编译报错,确认SQLite核心源码与System.Data.SQLite源码版本完全匹配
- 检查Visual Studio是否已正确安装ARM64编译工具,可通过「工具 → 获取工具和功能」重新勾选组件
- 项目属性中「C/C++ → 代码生成 → 运行库」建议选择
多线程DLL (/MD),避免静态库依赖冲突
内容的提问来源于stack exchange,提问作者mustf4
相关产品推荐
相关产品推荐

