Windows下程序打包发布时的小技巧
2016-09-23 15:33
405 查看
一、背景
Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去。这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要。很久以前写过一篇关于Qt程序安装包制作的博客,里面介绍了Dependency Walker这个小工具。但是实际操作起来并不理想,因为Dependency Walker将exe文件依赖的所有动态库以及动态库所依赖的动态库都列出来了。看得你一脸懵逼:你很难分清楚:倒底哪些DLL是需要打包的,哪些DLL是系统自带的。而作为打包过程中的一个小步骤,我根本不需要知道这么多信息。这个时候,我们需要一个更加简洁明了的工具。dumpbin就是今天要介绍的主角。
二、使用
dumpbin是随Visual Studio一起发布的,在Visual Studio的“本机工具命令行”中就可以直接使用。使用的第一步就是打开Visual Studio的“本机工具命令行”:这里我选择的是“VS2015 X64本机工具命令提示符”。命令行窗口打开后直接进入到工程目录,输入命令“dumpbin /IMPORTS ReplaceAETemplate.exe > output.txt”:
Duang~~~,所有依赖的DLL项都保存到output.txt里面去了。打开瞧瞧输出内容:
依赖的动态库一项项的非常清晰明了。当然,里面也会列出一些系统的动态库。这些系统动态库在系统安装时就有了,所以不用打包进去。当然就算打包进去也不会有什么害处。这个命令再配合everything这个小工具查找依赖的DLL,简直不要太爽:
三、小结
dumpbin的IMPORTS参数是用来查看程序依赖的其他动态库的,这对于可执行程序exe和动态链接库DLL都是适用的。EXPORTS则适用于DLL查看其导出的函数接口:结果照样重定位到output.txt中去了。这是因为如果直接在命令行中输出,前面的内容可能会被截断,导致内容看不完整。
从上面红框中可以看出,UniversalBlender.dll这个动态链接库导出了这么一些函数:capabilityAssessment, initializeDevice, runImageBlender等。
相关文章推荐
- Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)
- Qt程序在windows 和 linux 下打包发布
- 使用Advanced Installer 13.1打包发布 Windows Service服务程序
- Windows下Qt程序简单打包发布
- Qt5.0.2 + MinGw4.7 编译出来的程序,在windows平台下的发布与打包程序
- Windows环境Qt程序打包发布
- Windows平台下QT程序打包发布
- Qt4程序在windows平台下打包发布
- J2ME程序打包发布小技巧
- Windows下Qt程序的打包发布
- J2ME程序打包发布小技巧
- DotNetBar for Windows Forms 12.2.0.7_冰河之刃重打包版原创发布-带官方示例程序版
- windows平台QT程序发布打包
- Windows Sysinternals Desktops v1.0 发布 - 超简单的虚拟桌面程序
- [转]如何打包 c# windows服务程序
- 关于在windows下部署发布QT程序的总结
- C#如何为winform程序打包发布应用(图解教程)
- C#编写的Windows窗体程序怎样打包、卸载
- SWT,打包发布SWT程序,转EXE一条龙过程记录 一Eclipse下安装SWT
- 程序打包发布时,如何将程序集自动安装到全局程序集缓存(GAC)中