最近一个项目中要将生成的.dll文件打包成一个.mis或.exe文件。摸索了半天,终于搞定了,最终效果:
1.最终只生成一个可执行文件;
2.支持32位,64位平台
3.安装完成后调用.bat文件自动注册dll。
简单步骤:
1.下载Advanced Installer, 我下载的是Advanced Installer 10.6.
2.安装完成后,在通用模板栏,选择Enterprise,点击create project.
3.配置引导栏中,配置完各种资源。如果想生成包支持32/64位系统,在安装参数-〉安装选项-〉封装类型中选择“混合32/64位匹配平台”.
第一次选择的时候会出现一个加载资源的向导,这个向导会告诉你32位加载那些文件,64位加载哪些文件。注意,dll编译时32/64位系统需要分别编译。vs2008中可以在编译选项中选择,生成64位文件需要选择x64.
4.在媒体-〉配置中选择
这样最终就能生成一个单个的.exe文件。
5.各种资源都加载OK后。在advance install 的导向栏中的对话框中选择exitDialog,也就是在安装向导最后一步的时候出出的界面.
在这个界面下端有一个“完成操作”的选项:将需要运行的.bat/.exe加进去。
6.点击主菜单中的“运行”或“构建”。运行是会先“构建”然后会运行在本电脑中,完成后会生成一个exe文件,这个exe文件运行全解压出所有打包的文件。
区分32/64位系统的.bat文件:
@ECHO OFF
IF /I %PROCESSOR_ARCHITECTURE% == x86 GOTO _32BIT
:_64BIT
ECHO the system is 64bits,register 64bits dll
cd c:\windows\syswow64
regsvr32 -v c:\AuctionV1.0\sx_socket64.dll
GOTO END
:_32BIT
IF DEFINED PROCESSOR_ARCHITEW6432 GOTO _64BIT
ECHO the system is 32bits,register 32bits dll
regsvr32 -v c:\AuctionV1.0\sx_socket32.dll
:END
pause