更新SQLite至1.0.118后VSTO应用出现System.EntryPointNotFoundException错误
针对你遇到的发布客户端后找不到SQLite.Interop.dll入口点的问题,可按以下步骤排查解决:
检查架构匹配性
确认客户端机器的CPU架构(x86/x64),将VSTO项目的目标平台设置为对应架构(右键项目→属性→生成→目标平台),重新发布后,检查发布包中是否包含对应架构文件夹(如x86/x64)及其中的SQLite.Interop.dll,确保这些文件被正确部署到客户端应用目录。验证NuGet包部署配置
打开项目的NuGet包管理器,确认System.Data.SQLite.Core包的SQLite.Interop.dll文件复制本地属性为True。也可直接查看项目文件(.csproj),确保存在类似配置:<Content Include="x86\SQLite.Interop.dll"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content>保证发布时这些文件会被包含在内。
清理残留文件并重新发布
本地删除项目的bin和obj文件夹,重新生成解决方案;发布时勾选“清理现有文件”选项,避免旧版本SQLite.Interop.dll残留。客户端机器需彻底删除旧应用目录后再部署新版本。确认客户端.NET Framework版本
SQLite 1.0.118要求最低.NET Framework 4.6.1,检查客户端机器安装的.NET Framework版本是否与项目目标版本一致,版本过低会引发兼容性问题。临时排查:手动注册Interop.dll
若上述步骤无效,可尝试用对应架构的regsvr32工具注册SQLite.Interop.dll(32位工具处理x86 DLL,64位工具处理x64 DLL),验证是否为DLL加载问题,但此方法仅用于排查,不建议作为长期解决方案。
内容的提问来源于stack exchange,提问作者neverdayxy

