VS2022 编译的程序依赖的 VC 运行库 DLL 怎么手动提取随程序打包这样让没有安装的电脑也能运行?
VS2022 编译的程序依赖的 VC 运行库 DLL 怎么手动提取随程序打包这样让没有安装的电脑也能运行?
在 VS2022 中手动提取并打包程序依赖的 VC 运行库 DLL,让未安装 vc_redist.x64.exe 的电脑也能运行程序,可按以下 4 个步骤 操作,每一步都有明确的操作指引:
步骤 1:确定程序依赖的 VC 运行库 DLL(关键!避免盲目复制)
首先需要明确你的程序具体依赖哪些 VC 运行库 DLL(不同程序依赖可能不同,比如是否包含 VCRUNTIME140_1.dll 等)。推荐用 VS 自带的 dumpbin 工具 精准查询:
操作步骤:
1、打开 VS2022 开发人员命令提示符:
按下 Win + S,搜索 “Developer Command Prompt for VS 2022”,右键 “以管理员身份运行”(确保权限足够)。
2、定位到你的程序 .exe 所在目录:用 cd 命令切换路径,例如:
cd C:\你的程序输出目录\Release # 假设程序在 Release 文件夹下
3、执行命令查看依赖的 DLL:输入以下命令(将 你的程序名.exe 替换为实际的程序文件名):
dumpbin /dependents 你的程序名.exe
4、识别 VC 运行库 DLL:输出结果中,名称以 MSVCP140、VCRUNTIME140、CONCRT140 开头的 DLL 就是需要打包的 VC 运行库(其他 DLL 可能是 Qt 或系统自带的,暂不处理)。示例依赖(64 位程序常见):
MSVCP140.dll
VCRUNTIME140.dll
VCRUNTIME140_1.dll
CONCRT140.dll
步骤 2:找到这些 VC 运行库 DLL 的位置(确保版本匹配)
从你的开发机(已安装 VS2022)中找到步骤 1 识别的 DLL,优先从 VS 安装目录提取(版本与编译环境完全匹配,避免系统目录中可能存在的旧版本)。
常见路径(64 位程序):
VS2022 安装目录(推荐):
plaintext
C:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.38.33130\x64\Microsoft.VC143.CRT\
说明:14.38.33130 是版本号(你的 VS 版本可能不同,需替换为实际路径中的版本号,可在 MSVC 文件夹下找到最新的版本目录)。
该目录下的 DLL 是 VS2022 自带的,与你的编译环境完全匹配,最可靠。
系统目录(备用,若 VS 目录中找不到):64 位 DLL 在 C:\Windows\System32\(注意:64 位系统中 System32 存放 64 位文件,SysWOW64 存放 32 位文件)。
步骤 3:复制 DLL 到程序目录(与 .exe 同目录)
将步骤 2 找到的所有 VC 运行库 DLL(如 MSVCP140.dll 等)复制到你的程序 .exe 所在的文件夹,与 Qt 的 DLL(如 Qt6Core.dll、Qt6Widgets.dll 等)放在一起。
示例目录结构:
plaintext
你的程序文件夹/
├─ 你的程序名.exe # 主程序
├─ MSVCP140.dll # VC 运行库 DLL
├─ VCRUNTIME140.dll # VC 运行库 DLL
├─ VCRUNTIME140_1.dll # VC 运行库 DLL
├─ CONCRT140.dll # VC 运行库 DLL
├─ Qt6Core.dll # Qt 核心 DLL(通过 windeployqt 生成)
└─ ...(其他 Qt 依赖 DLL)
步骤 4:验证是否成功(在干净环境测试)
为确保打包有效,需在 未安装 vc_redist.x64.exe 的电脑 / 虚拟机 中测试:
将整个程序文件夹复制到目标电脑;
双击 .exe 运行,若能正常启动且无 “缺失 DLL” 错误,则成功;
若仍报错 “缺少 XXX.dll”,说明漏复制了依赖的 DLL,回到步骤 1 重新检查 dumpbin 输出,补充缺失的 DLL 即可。
关键注意事项
版本必须严格匹配:提取的 DLL 版本必须与你的 VS2022 版本一致(例如 VS2022 对应 VC143 版本,DLL 版本号需匹配),否则可能出现 “应用程序无法启动” 或运行时崩溃。
64 位 / 32 位不可混用:
若你的程序是 64 位编译(项目配置为 x64),必须提取 64 位 DLL(来自 x64 目录);
若为 32 位(x86),需提取 32 位 DLL(VS 目录中 x86 子文件夹,或系统 SysWOW64 目录)。
许可合规:微软允许随程序打包这些 DLL,但不可单独分发(必须与你的应用程序一起),需遵守 VC 运行库许可条款。
Qt 依赖仍需处理:此方法仅解决 VC 运行库依赖,Qt 本身的 DLL 需通过 windeployqt 工具生成(在 VS 命令提示符中执行 windeployqt 你的程序名.exe,会自动复制所需的 Qt DLL)。
通过以上步骤,即可手动打包 VC 运行库 DLL,让程序在未安装 vc_redist.x64.exe 的电脑上正常运行,无需用户额外安装运行库。

