Setup Factory中的如下界面:
红色矩形中的仅仅是用来测试该文件是否是能注册的组件或ocx控件,在安装包安装过程中并不会注册该组件,如需注册,必须按下面步骤进行:
1: 先将需要注册的组件所需的所有依赖库放在安装文件目录中。如果依赖库还依赖了其它库,请排序添加之。也就是
说本步骤就是将所有依赖库按照依赖关系排序添加到安装目录中。更改上图中的优先级中的安装顺序数字虽可保证依赖关系(数字越大的,越后安装)但在安装创建快捷方式这一步时会崩溃(用Setup Factory 9.5测试的),如下所示:
所以还是将所有依赖库按照依赖关系排序添加到安装目录中。
2:然后再放入需要注册的组件。注意:第1步和第2步顺序不能搞反,否则在安装时,该组件注册时,会弹出如下错误:
即LoadLibrary()失败(126)错误(上面我只是随便截了个图,真实错误代码不是14001,而是126)
第1步保证了先安装依赖库,然后再安装需要注册的组件,从而避免了LoadLibrary()失败(126)错误
3. 在Setup Factory的Action页面,On Post Install中,增加以下代码:
Shell.Execute("regsvr32", "open", SessionVar.Expand(" /s \"%ProgramFilesFolder%\\%ProductName%\\XXXX.dll\""));
/s选项表示后台slient安装,不会弹出提示框。%ProgramFilesFolder%这一串字符必须用(\")括起来。
如图所示:
本文转自:http://blog.chinaunix.net/uid-10376640-id-3398980.html