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

Flutter构建MSIX安装包时如何添加sqlite3.dll文件?

解决Flutter构建MSIX时缺失sqlite3.dll的问题

以下是可行的解决方案,按步骤操作即可将sqlite3.dll纳入MSIX构建流程:

  • 确认sqlite3.dll位置
    通常该文件存在于项目的windows/runner/Debug或Release目录下;若使用sqflite_common_ffi等依赖包,也可能在pub缓存路径中,比如%USERPROFILE%\.pub-cache\hosted\pub.dev\sqlite3_flutter_libs-<版本号>\windows,找到对应路径的dll文件。

  • 通过pubspec.yaml声明资源
    在项目的pubspec.yaml中,flutter节点下添加assets配置,指定dll路径:

    flutter:
      assets:
        - windows/runner/Release/sqlite3.dll
    

    注意:Debug构建模式需替换为windows/runner/Debug/sqlite3.dll。

  • 修改CMakeLists.txt自动复制dll
    打开windows/CMakeLists.txt,在add_executable代码块后,添加复制dll的指令:

    # 复制sqlite3.dll到构建输出目录
    add_custom_command(TARGET ${BINARY_NAME} POST_BUILD
      COMMAND ${CMAKE_COMMAND} -E copy_if_different
      "${CMAKE_CURRENT_SOURCE_DIR}/runner/Release/sqlite3.dll"
      "$<TARGET_FILE_DIR:${BINARY_NAME}>"
    )
    

    路径需与实际dll位置匹配,Debug模式同步替换路径。

  • 配置MSIX打包插件的额外文件
    若使用msix插件打包,在pubspec.yaml的msix_config中添加extra_files配置:

    msix_config:
      display_name: 你的应用名称
      publisher_display_name: 你的发布者名称
      identity_name: com.yourcompany.yourapp
      extra_files:
        - path: windows/runner/Release/sqlite3.dll
          destination: .
    

    此配置会让MSIX打包时自动将dll复制到与应用exe同级的目录。

  • 验证构建结果
    执行flutter build windows --release(Debug模式替换为--debug),检查build/windows/runner/Release目录下是否存在sqlite3.dll;再执行flutter pub run msix:create生成MSIX包,安装后测试即可解决白屏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:46:01