You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows Phone旧应用加载sqlite3.dll失败求助(Visual Studio 2015)

解决Windows Phone旧版项目中sqlite3.dll加载失败的问题

我之前帮朋友处理过VS2015下Windows Phone旧项目的SQLite加载问题,针对你遇到的“无法加载DLL 'sqlite3'”错误,给你几个针对性的方案:

  • 确保使用适配WP旧版的SQLite版本
    你尝试的sqlite-winrt-3220000.vsix是针对UWP或更高版本的,旧版WP(WP8/WP8.1)项目根本用不了。建议通过NuGet安装专门适配的包:在VS2015的NuGet包管理器中搜索SQLite.Net-PCL,选择支持Windows Phone 8的旧版本(比如v3.1.1)安装,它会自动帮你配置好对应平台的dll和引用。

  • 手动放置dll时注意平台匹配
    如果你坚持手动放dll,别只扔到Bin/Debug根目录——WP项目分x86(模拟器)、ARM(真机)、x64三种平台,你需要把对应平台的sqlite3.dll分别放到项目的x86\DebugARM\Debugx64\Debug文件夹中。然后在VS里选中每个dll,右键设置属性:

    • 复制到输出目录:始终复制
    • 生成操作:内容
  • 手动修改项目文件修复引用问题
    有时候VS的引用配置会出问题,你可以右键项目→卸载项目,然后编辑.csproj文件,添加以下配置(根据你的平台调整路径):

    <ItemGroup>
      <Content Include="x86\Debug\sqlite3.dll">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <Link>x86\sqlite3.dll</Link>
      </Content>
      <Content Include="ARM\Debug\sqlite3.dll">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <Link>ARM\sqlite3.dll</Link>
      </Content>
    </ItemGroup>
    

    保存后重新加载项目,再重新生成。

  • 彻底清理缓存后重建
    别只用VS自带的“清理解决方案”,手动删除项目下的BinObj文件夹,然后重启VS,再重新生成整个解决方案。旧版VS的缓存经常会导致dll复制不完整的问题。

如果还是不行,检查一下你调试的目标平台(模拟器是x86,真机是ARM)和你放置的dll平台是否完全匹配,很多时候都是平台不对应导致的加载失败。

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

火山引擎 最新活动