制作一个安装包涉及到的最基本的工作:
1.拷贝文件,按照一定的目录结构组织;
2.创建空的目录,因应用程序需要;
3.写注册表;
4.注册Filter或者COM组件;
5.运行外部exe,执行程序;
6.安装第三方软件(安装包);
7.调用已经写好的DLL中函数;
8.安装驱动;
一些绿色软件根本不需要安装就可以使用,那么打包它其实只需要拷贝文件这个操作。
拷贝文件
像前面几篇讲的那样,如果工程中是按照应用程序的需要的目录结构先添加了静态链接,(安装完成后,这么生成的目录都是些空目录)。那么我们需要用Script语言在程序中实现拷贝文件。
XCopyFile();这个函数可以实现文件的拷贝。
另外一种方法,我们利用可视化的方法直接拖放需要拷贝的文件和目录。(我自己的工程采用了静态链接和拖放两种方式)。
(首先我创建的工程是InstallScript Project)。
工程创建完成后,你已经配置好一些工程和产品参数后,就可以拖放文件实现拷贝了,(注意请不要在代码中重载OnMoveData函数,否则这些拖放操作可能失效。)
选择Installation Designer Page,然后双击右边栏里面的Files And Data,你可以看到类似于资源管理器的窗格。
你分别可以看到左上方的是Source Computer的资源管理器。右上方显示左边选中文件夹里面的文件。
右下方显示的是你安装包安装完成后的目标机器的目录结构,写显示了一些典型的目录结构。说明这些都是可以可是化拖放的。
Application Target Folder就是Scripte语言中的 TARGETDIR 所代表的值。也就是在安装界面可用用户选择的安装路径。
我的工程里面Resource目录里面放的是安装包需要拷贝的文件和目录结构。
点击Application Targer Folder, 右键选择”New Folder“,然后Rename,修改成你需要的目录名字。
我分别创建了Effect,Skin,Virtural Cam Driver目录。
然后我把拷贝到这些文件目录下的文件或子目录全部从左上方拖到右下方窗体里面。这样它可以自动生成写目录或COMPONENTS。拖放完毕后,你可以对照上下窗体的里面的目录和文件是否安装你需要的结构组织。一般情况下需要更改Destination Computer File's ------>Application Target Folders ----->下面一些文件夹名字的大小写。
我的工程里面还需要创建两个空的目录。
我没有直接NewFolder,而是按照前面几篇讲的:
选择右边栏的Componets选项里面,选中我的DefaultComponet然后创建了两个静态的文件链接 Capture , Effect。这样你也看到Destionation computer files's -----> Application Target Folder ---- 会出现Capture 和Effect目录。
这样就实现了所有文件的拷贝。(不管是有内容的目录的拷贝还是空目录的创建)