码迷,mamicode.com
首页 > 其他好文 > 详细

采用SetUpFactory打包程序

时间:2016-04-26 20:51:03      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:



Setup Factory打包自己开发的软件的办法的方法(包括安装软件狗驱动和ocx注册)

 

  软件:Setup Factory7.0 英文版

 

以前用过install shield 9.0打包vb的软件,也用过VS2005自带的打包软件打包VS2005的软件,也用过InstallShield6.2来打包vb的软件。

   毫无疑问,无论是打包vb或者C#开发的软件,Setup Factory7.0打包是最快的,也是最好的,而且很容易入门。一旦拥有,别无所求!感谢Mr.Wu的帮助,他n年前就用过了,还是由我这个菜鸟来写总结吧。

我们要打包的对象是:图01

技术分享

 




一个qq围棋的格式转换程序,它需要用到通用对话框comDlg32.ocx控件,我们模拟出一个DogInstallVir.exe的软件狗安装小程序,没有病毒,请放心。Test.wgs是qq的围棋格式,out23.sgf是转换后成功的例子。

首先,安装好Setup Factory7.0英文版后

 技术分享

点Create后,图02:

 技术分享

图3选择打包用的所有文件:

 技术分享

下面是选安装背景,可以不选择,也可以弄个mm图片……,图4:

 技术分享

图5:

 技术分享

图6选择语言:

 技术分享

图7选择vb版本:

 技术分享

图8:

 技术分享

导入所有文件后,图9:

 技术分享

 

有2个难点:

1.       COMDLG32.OCX控件要放到C:\windows\system32\下面,而且,卸载软件的时候不卸载掉它,否则其它的软件可能会用不了。

2.       软件狗(或者其它可执行exe小程序)如何在安装完成前安装。

 

双击comdlg32.ocx, 然后修改Destination属性成:%SystemFolder%,如图10:

 技术分享

下面这个是让卸载软件的时候不删除ocx文件,可以用shift批量修改,很方便。这样如果别的软件也用到这个ocx,卸载此软件不影响其它的软件。图11:

 技术分享

Setup Factory会自动把所有的exe文件建立一个快捷方式到“开始”-“程序”-“软件名称”的文件夹下。软件狗的驱动没有必要放在“开始”-“程序”这里,因为它不常用。所以我们做如下修改:去掉”Start menu > appFolder”的勾。图12:

 技术分享

下面设置软件狗的驱动程序,在安装完成前运行instdrv.exe这个可执行文件。图13:

 技术分享

 

 

图14:

 技术分享

图15选File-Run

 技术分享

结果显示如图16:

 技术分享

 

浏览文件,图17:

 技术分享

下面的WaitForReturn选择true,这样就必须安装或者不安装驱动才会出现完成软件安装的界面。图18是返回的界面:

 技术分享

 

点“完成”后。图19:

 技术分享

 

点“确定”后,返回主界面,主程序如图20:

 技术分享

图21:

 技术分享

保存工程,最好和打包的文件放在同一个地方,图22:

 技术分享

 

然后点“publish”-“build”或者F7,图23:

 技术分享

图24:

 技术分享

点击“build”。图25:

 技术分享

 

完成后,生成下面的文件,图26:

 技术分享

运行setup.exe后安装软件,看看界面,图27:

 技术分享

图28:

 技术分享

图29:

 技术分享

图30:

 技术分享

图31:

 技术分享

图32:

 技术分享

图33:

 技术分享

图34:

 

 技术分享

开始菜单下面会有自动卸载的,图35:

 技术分享

 

如果是打包C#或者C++等的,需要打包框架。20多M。按照下面的就可以了:

1、在“资源”的“原始文件”中添加net Framework 2.0(例如dotnetfx2.0.exe)
2、再在“操作”的“启动”中增加如下代码:
result = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\.NETFramework\\policy\\v2.0");
if (result == false) then
result = File.Run(SessionVar.Expand("%TempLaunchFolder%\\dotnetfx2.0.exe"), "", "", SW_SHOWNORMAL, true);

end

 

 

附加2个复杂的大型程序打包会遇到的问题(2011.01.23 by Kiseigo):
1. 如何知道自己的*.vbp工程需要哪个dll
2. 为什么给一台新安装xp的电脑安装“围棋setup.exe”老是出异常?

回答1:

技术分享

使用Tools下面的”Scan File Dependencies”和”Scan Visual Basic Project”,后者需要指定你的vbp工程的完整路径,然后Setup Factory会去找需要的dll和ocx文件,一般都是在“C:\WINDOWS\system32”找到,然后你自己去下面把这些文件复制到“打包用到的原始文件下面”,新建一个叫“DLLimport”之类的名称的文件夹,然后把所有的dll和ocx复制到这下面去。
它们是默认安装到“C:\Program Files\围棋\DLLimport”下面的,所以需要把它们的Destination的Install的值改正” %SystemFolder%”,可以批量修改,方法是选中多个dll后,右键,然后属性,点击笔的按钮:

技术分享

回答2
所有使用的dllocx都需要一句句手工注册,否则安装好setup后,启动程序,就会出现各种各样的异常。
技术分享

下面是第二条的注册代码:
Shell.Execute("regsvr32", "open",  SessionVar.Expand(" /s %SystemFolder%\\comctl32.ocx"), "", SW_SHOWNORMAL);

采用SetUpFactory打包程序

标签:

原文地址:http://blog.csdn.net/xsfqh/article/details/51245050

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!