feat(windows): 集成 VC++ 运行库到安装包(干净电脑缺 vcruntime140 等导致启动报错)

flutter_windows.dll 与 HiTi SDK 均动态依赖 VC++ runtime,开发机因 VS 而有、
干净电脑没有(用户实测:他人电脑安装后启动弹找不到 dll)。
方案=应用本地部署(微软官方允许):从 VS 的 VC\Redist 拷运行库 dll 到
windows/vendor/vcruntime/(gitignore 不忽略,随仓库),CMake POST_BUILD
自动拷到 exe 旁,安装包随之分发。
This commit is contained in:
dzc committed 2026-09-21 18:20:17 +08:00
1 parent dd9b661516
commit 634d100542
1 file changed
+12
+12
View File
@@ -54,3 +54,15 @@ add_custom_command(TARGET ${BINARY_NAME} POST_BUILD
"${CMAKE_CURRENT_SOURCE_DIR}/../vendor/heatthcd.bin"
$<TARGET_FILE_DIR:${BINARY_NAME}>
)
# VC++ 运行库(windows/vendor/vcruntime/):flutter_windows.dll 与 HiTi SDK 均依赖
# vcruntime140/msvcp140 等——开发机因装 VS 而有,干净电脑没有(安装后启动弹
# "找不到 VCRUNTIME140.dll")。应用本地部署(exe 旁优先加载)为微软官方允许的分发方式。
# 目录内容从开发机 VS 的 VC\Redist\MSVC\*\x64\Microsoft.VC143.CRT 拷入(见 README)。
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../vendor/vcruntime")
add_custom_command(TARGET ${BINARY_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_SOURCE_DIR}/../vendor/vcruntime"
$<TARGET_FILE_DIR:${BINARY_NAME}>
)
endif()