vc自带InstallShield打包教程
- 格式:doc
- 大小:127.00 KB
- 文档页数:4
前言Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于上手和精通都不是容易的事情,之前都是用Installshield的Project Assistant对付过去的,这次做这个安装程序,为了实现一些功能,必须写代码,国内外现成的资料很少,而且很多都语焉不详,自己反复啃了多次,对比Installshiel自带的help,才明白资料所表达的意思。
这个安装程序虽然比较简陋,在行家眼里可能是小菜一碟,但是也花了笔者一个星期的时间,阅读了很多资料,啃了好几天英文help,集成了很多先驱者的经验,也费了自己不少心血做成的,对每一段代码的用处、每一个用到的函数都进行了详细的说明,因此转载时请务必保留转载出处和由艾泽拉斯之海洋女神出品的字样;如需刊登,请与作者联系。
在此要感谢吞硬币的小猪,天下晓明,余满青,海洋C++乐园(此海洋不是彼海洋)等大虾在互联网上的无私奉献,他们的贴子和博客给了我很大启示。
因为本人是做java出身的,因此对这种类C++语言还是第一次接触,有理解不当之处,请朋友们指正。
欢迎Email至***********************正文需求:公司做了一个软件产品,1.该软件运行需要JDK环境(不是JRE,因为该软件要向windows注册一个服务,用到了JavaService,JDK才支持这个功能;不过这里侧重于判断是否安装了某软件是否安装,而不是纠缠于该装JDK还是该装JRE);2.由于是Server-Client形式的,需要允许用户选择安装组件,比如A机只装Server端,B机只装Client端;3.文档不打包在安装程序里,直接存放在光盘文件夹下方便用户查看,同时允许用户指定是否安装文档到计算机上(为什么这样做,后面说明详细原因);4.该软件会以授权形式发放给用户,不同的用户,软件本身可能相同,而不同的只是授权文件和一些配置,因此希望授权文件和配置文件不打包在安装程序里,而直接存放在光盘里,以减少可能的重复打包安装程序的劳动;5.在安装完毕后,希望能自启动程序(因为该软件需要在安装完毕后启动一个程序,该程序实现向Windows注册服务的功能,该程序最好由安装程序启动,而不是由客户手动启动)。
C#使⽤InstallerProjects打包桌⾯应⽤程序的完整步骤前⾔打包桌⾯应⽤程序实在是⼀个不常使⽤的东西,偶尔使⽤起来经常会忘东忘西的耽误时间,因此,这篇⽂章多以图⽚记录过程,也是⽤于备忘。
下载打包⼯具C#打包桌⾯应⽤程序有很多种⽅法,这⾥介绍⼀种使⽤Microsoft Visual Studio Installer Projects⼯具打包的⽅法。
⾸先,我们先创建⼀个Windows桌⾯应⽤,如图:接下来我们选择⼯具,点击扩展和更新,如图:然后我们得到界⾯如下,如图:界⾯默认显⽰的是已安装的内容,我们仔细看下内容,会发现,这⾥都是我们已经安装过的⼯具,在仔细看,我们会发现,这⾥⼤部分⼯具的创建者都是microsoft,也就是说,这⾥的⼯具都是官⽅给我们提供的⼯具。
因为我们要下载本机不存在的⼯具,所以我们点击左侧菜单的【联机】按钮,然后在右上⾓的搜索框中输⼊Microsoft Visual Studio Installer Projects进⾏检索,如图:然后我们选中Microsoft Visual Studio Installer Projects选项,点击选项中右上⾓的下载,将该⼯具下载到本地。
下载完成后,我们会发现,在当前窗体的下⽅有这样⼀个提⽰。
该提⽰,告诉我们,虽然⼯具已经下载完成了,但还没有进⾏安装,需要我们关闭Visual Studio后,才能安装。
关闭Visual Studio后,会⾃动弹出如下提⽰框,系统还会提⽰我们是否允许,我们选择【是】。
接下来,该窗体会显⽰⼯具的相关内容,下⽅会增加⼀个修改按钮,如下图:我们点击修改,然后⼯具就会⾃动安装了。
创建打包项⽬等待⼯具安装完成后,我们重新打开Visual Studio,打开刚刚我们建⽴的WPF项⽬。
在WPF项⽬所在的解决⽅案中,我们右键新建项⽬,然后选择左边菜单的【其他项⽬类型】—【Setup Project】,创建安装⼯程KibaInstallSetup,如下图:点击确定,我们可以看到如下窗⼝。
打包程序:1,解决方案—右键菜单“添加”—新建项目—其他项目类型—安装和部署—Visual S tudio Installer—安装项目,输入名称Setup1,点“确定”2,添加开始程序中的文件夹:右击左侧“应用程序文件夹”—添加—文件夹,自己设置名称。
这里的作用就是好管理,这里我就叫它“测试打包系统”;然后再右击左侧“用户的程序菜单”—添加—文件夹,自己设置名称,这里我就叫它“测试打包系统”。
3,添加主输出:右击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),添加—项目输出-主输出-确定。
下一步:添加主输出4,添加开始程序中和桌面的主程序快捷方式:单击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),右键菜单“创建主输出来自***的快捷方式”,命名为“测试打包系统”。
然后将其分别拖到左侧“用户的程序菜单”—测试打包系统(即刚刚创建的文件夹)和左侧“用户桌面”(或单击左侧刚新建的文件夹--右侧右键—创建新的快捷方式--选择“应用程序文件夹”---主输出--“确定” ;单击左侧用户桌面--右侧右键—创建新的快捷方式---选择“应用程序文件夹”---主输出---确定)5,设置程序图标:先把图标文件放到你的程序目录下---单击左侧“应用程序文件夹”---Images(自己创建的文件夹),---空白处右键—添加—文件---图标文件。
然后左侧“用户的程序菜单下”的文件夹---单击刚才新建的程序快捷方式---属性窗口---Icon—浏览—图标文件---确定。
同理添加“用户桌面”里快捷方式的图标。
添加"快捷方式的属性"浏览找到图标文件---确定。
6,添加卸载功能:右击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),添加—文件,在c:\windows\system32文件夹下找到msiexec.exe文件。
然后像添加主程序快捷方式一样在开始程序中添加这个卸载的快捷方式,名字可以自己设置,这里我就叫它“卸载系统”。
installshield教程InstallShield是一种用于创建安装程序的软件工具,它被广泛用于Windows操作系统。
它提供了一个易于使用的界面,可以帮助开发人员创建和部署软件安装包。
以下是一个简单的InstallShield教程,帮助您开始使用这个强大的工具:1. 下载和安装InstallShield软件。
您可以从Flexera的官方网站下载最新版本的InstallShield。
2. 打开InstallShield软件。
在打开软件后,您将看到一个主要的项目窗口,其中包含项目资源和设置。
3. 创建新项目。
单击“文件”菜单,然后选择“新建项目”选项。
在新建项目对话框中,选择您的项目名称和保存位置。
4. 添加软件资源。
在项目窗口的左侧面板中,选择“资源视图”。
选择“文件夹”,然后从您的计算机中选择要添加到安装程序的文件和文件夹。
5. 配置安装程序设置。
在项目窗口的左侧面板中,选择“设置视图”。
在“常规”选项卡中,设置安装程序的名称、版本号和目标操作系统等信息。
6. 配置安装程序界面。
在项目窗口的左侧面板中,选择“用户界面视图”。
选择一个适合您的项目的安装界面模板,并进行必要的自定义设置。
7. 配置安装程序行为。
在项目窗口的左侧面板中,选择“行为视图”。
在这里,您可以设置安装程序的行为规则,例如安装位置、文件覆盖选项等。
8. 构建安装程序。
在菜单栏中,选择“生成”选项,并选择“构建”选项。
这将开始编译和生成您的安装程序。
9. 测试安装程序。
在菜单栏中,选择“生成”选项,并选择“运行”选项。
这将启动一个安装程序测试程序,您可以在其中模拟真实环境中的安装。
10. 发布安装程序。
在菜单栏中,选择“生成”选项,并选择“导出”选项。
这将创建一个可执行的安装程序文件,您可以将其分发给用户并进行安装。
这是一个简单的InstallShield教程,帮助您开始使用这个功能强大的软件工具来创建和部署Windows安装程序。
程序打包心得(如何打包第三方控件)打包工具:vc安装包自带InstallShield最初打包后在别人机器上运行弹出Assert错误对话框,提示dlgdata.cpp 43行错误,网上说可能有三种原因:一是控件ID不存在,二是控件未创建,三是控件的类型不对看看DoDataExchange函数按照网上提示排除了三种情况的可能性,程序依然弹出Assert错误对话框。
点击Assert错误对话框的“忽略”按钮,出现winocc.cpp 301 以及“试图执行系统不支持的操作”等错误提示框,程序虽然弹出运行界面,但ixyplotx控件全部没有显示出来,再次上网搜索“试图执行系统不支持的操作”错误的原因,网上说可能是ixyplotx控件(第三方控件)在别人机器上运行需要注册,网上搜索注册方法有三种:1. 使用Regsvr32.exe程序对ActiveX控件进行注册;2. 使用安装程序制作软件:InstallShield;3. 在应用程序中加入注册代码。
接下来尝试用第二种方法来看能否解决上述错误。
经过多次试验掌握了InstallShield for vc的使用方法后,解决了上述问题,在别人机器上能正常安装运行,ixyplotx控件亦正常显示。
在InstallShield中如何注册ixyplotx控件请参照以下步骤:1 、在file groups新建文件夹Activex,将其self-registered属性改为Yes图12、点击Activex,弹出Links,右键点击Links,选择Insert file,找到ixyplotx 控件所在的文件夹,选择需要注册的控件。
图2点击打开按钮,此时程序所需控件全部添加到Activex-》Links下,如下图所示:图33、选择Components-》Program Executables,点击Included File Groups属性,弹出对话框:图4点击Add:此处可以看到此前在File Groups添加的Activex文件夹,选择它,点OK。
初次使用InstallShield的笔记公司的产品需要打包发布,以前一直没打包,打包方法的学习交给了我下面的内容是我研究过后的,通过回忆写的笔记。
由于不熟悉,可能会有错误或者是笨办法,希望高手指正,感激不尽。
有些东西是什么,以及是什么意思我也不太清楚,反正我照这么做是满足了我的需求。
需求如下项目包含主程序和数据库文件两个部分,可以选择这两个部分安装在不同的地方当文件都复制完之后将数据库文件的安装路径写进程序安装目录下的一个ini文件当中工具选择1. VS05自带的打包工具一开始选择的这个工具,不过我太菜我确实不知道怎么让这个来满足我们的需求2. InstallShield 2009 pro随后想到了专业打包工具IS,下载了较新的版本试用。
不过网上教程较少,软件功能强大,因此在慢慢摸索中。
步骤1. 开始网上说一般的打包工程选择Basic MSI Project,如果需要对界面需要进行很高的定制就需要选择InstallScript MSI Project。
由于我只需要打包,已经执行部分脚本因此我选择了Basic MSI Project。
输入Project Name,选择Location后点击OK,新建工程。
进入到下图界面,此时我们可以选择两种打包方式(红框处选择)1.Project Assistant 可以进行简单的类似向导类的配置即可进行打包工作,如果选择这种方式,Visual Studio自带的工具也能轻松实现2.Installation Designer 完全自由化的配置,自我定制程度最高。
根据需求情况,我自然选择第二种方式2.配置点选Installation Designer,进入如下界面红框处就是需要选择配置的区域了。
2.1 General Information在Installation Information中选择General Information,在这里配置软件的基本信息红线处你可以写上你的大名,你是这个Project的作者下面的Setup Langueages可以选择安装语言,我这里只考虑了简体中文,故未更改设置。
【教程】InstallShield使⽤完全教程InstallShieldInstallshield是⼀个强⼤和易于使⽤,⽤于解决Windows软件安装包开发的制作⼯具。
⽤它可以以传统MSI⽅式和虚拟格式,⾃动化地封装、捆绑和包装你的产品。
IntallShield能使你的⽤户在决定何时何地何⽅式管理和部署你的应⽤程序时,得到⼀个最时尚舒畅的安装体验。
是Microsoft Windows平台上应⽤程序安装打包领域,使⽤最⼴泛和市场认可度最⾼的⼀款安装打包⼯具软件,⽀持Windows(客户版本及服务器版本),Web服务和移动设备。
对于软件开发⼈员来说,Installshield是⼀个⾮常优秀的⼯具,⽤来打包⾃⼰的应该程序,刚好今天想打包⾃⼰的⽹络电视,所以写个使⽤教程。
①下载Installshield⽹上下载的也⽐较多,破解版的也多,如果有需要的,可以留下邮箱②新建⼯程打开Installshield 2010 Premier Edition,新建⼀个Installscript MSI Project,这种被称之为半脚本程序,因为兼具Basic Project基本类型和Installscript Project全脚本类型两者的优点,我⽐较喜欢⽤。
像我这样需求的,既要⽤到Wizard的便利,⼜想写⼀点脚本来实现⼀点⾃定义操作的,就⽐较适合⽤这种类型啦。
选择类型为Windows Installer | InstallScript MSI Projcet,输⼊⼯程名,指定⼯程所在的⽂件夹。
③配置⼯程界⾯会切换到Project Assistant,我们先从这⾥开始把⼯程的基本组件和基本⽂件建⽴好。
在Project Assistant界⾯的底部,会有⼀个引导动作条,在建⽴该⼯程的基本结构和⽂件时,我们都将在此界⾯进⾏操作,下⽂都将以“引导条”来指代这个引导动作条。
❶点击引导条上的Application Information这⾥输⼊:公司名,公司名将会出现在Setup.exe的注解中软件名,将会出现在安装过程的左上⾓标题栏上版本号,⾃⼰⽐较⽅便地知道⾃⼰在编译哪个版本的软件公司⽹址,如果该公司没有⽹址呢?⽽且这⾥有点bug,好像默认的值总是会报⼀个String_ID1为空的错误,⾃⼰输⼊⼀个⽹址就不会报错。
VisualStudioInstaller打包安装项⽬VS2015使⽤VS2015的Visual Studio Installer打包安装项⽬,虽然整体操作很简单,但还是有⼏个特殊的点需要记⼀下,故写下此博客⽅便以后查阅第⼀步,创建安装项⽬如下:⾥⾯最左侧的框框有三个⽂件夹1.“应⽤程序⽂件夹”即"Application Folder"表⽰要安装的应⽤程序需要添加的⽂件;2.“⽤户的‘程序’菜单”即"User's Programs Menu"表⽰:应⽤程序安装完,⽤户的“开始菜单”中的显⽰的内容,⼀般在这个⽂件夹中,需要再创建⼀个⽂件⽤来存放:应⽤程序.exe和卸载程序.exe;3.“⽤户桌⾯”即"User's Desktop"表⽰:这个应⽤程序安装完,⽤户的桌⾯上的创建的.exe快捷⽅式。
第⼆步,右键“应⽤程序⽂件夹”,添加——⽂件添加的⽂件⼀般是已经编译⽣成过的应⽤程序项⽬的debug⽬录下的exe⽂件(即位于../bin/Debug⽂件夹下的主程序exe⽂件);添加后,⼀般它会⾃动把exe程序所需的依赖项也加进来,如各种dll⽂件,在右侧的“Detected Dependencies”⾥⾯可以看到它⾃动导⼊了哪些依赖项,⽅便你检查是否有遗漏接下来,可能还剩⼀些⽂件夹或者配置⽂件XML等没有⾃动加进来,这个时候就需要⾃⼰⼿动添加⽅式也是⼀样,右键“应⽤程序⽂件夹”,添加——⽂件夹,添加——⽂件,这⾥就不再赘述第三步,创建快捷⽅式右键主程序exe⽂件,选择“创建快捷⽅式到……”然后,中侧框框⾥会出现⼀个快捷⽅式项,将它剪切,粘贴到“⽤户桌⾯”⽂件夹下⾄于快捷⽅式的名称、图标、描述等其他属性,可以在属性⾯板中设置,如下第四步,添加卸载程序既然有安装就有卸载,卸载程序其实是⼀个Windows操作系统⾃带的程序(C:Windows\System32\Msiexec.exe),只不过是通过给它传特殊的参数命令,来让它执⾏卸载添加和设置卸载程序的操作如下:⾸先,将卸载程序放在“应⽤程序⽂件夹”⽬录下,右键“应⽤程序⽂件夹”,添加——⽂件,在系统盘下找到这个路径⽂件——C:Windows\System32\Msiexec.exe添加进去由于Msiexec.exe这个名字不够直观,所以⼀般接下来我们会对它重命名,⼀般改为“卸载.exe”或“UnInstall.exe”,然后给它创建快捷⽅式并将快捷⽅式放到“⽤户程序菜单”⽬录下接下来是很关键的⼀步,设置卸载参数,告诉卸载程序该卸载哪个⾸先,找到安装项⽬的ProductCode,在安装项⽬的属性⾯板中可以看到,如下复制此ProductCode ,粘贴到“卸载.exe”快捷⽅式的Arguments属性,前⾯加/x空格,如下Arguments=“/x {81575537-5736-457F-9DBE-857C1F67BE70}”记得/x后⾯⼀定要有个空格第五步,其他设置如果还想对安装程序进⾏其他设置,⽐如,友化安装欢迎界⾯,⾃定制安装步骤,修改注册表,设置启动条件(⽐如要求必须先安装指定的.net FrameWork版本才可以启动)等,可以右键安装项⽬,在View中可以进⾏选择设置,如下有需要可以再去研究,这⾥就不详细赘述了第六步,设置系统必备⼀般我们开发的程序都有⼀个⽬标框架,也就是所依赖的.net Framework版本环境,如.net Framework 2.0/3.5/4.0/4.5等要想我们的程序能在电脑上正常运⾏,⾸先就得保证电脑上装有指定的.net Framework版本框架,可以在安装包的属性中设置,启动安装前检查操作系统中是否安装了指定版本的框架或其他依赖,设置⽅法如下:右键安装包项⽬,点开“属性”然后点击“Prerequisites……”选择你程序需要的.net Framework版本以及其他依赖项选择“从组件供应商的⽹站上下载系统必备组件”,这样⼀来,即使电脑上没有安装需要的.net Framework也不要紧,只要设置了这项,安装程序会⾃动从微软的官⽹上下载对应的组件并安装,是不是很⽅便第七步,⽣成打包安装⽂件右键安装项⽬,选择重新⽣成然后打开解决⽅案⽂件夹下的Debug或Release⽂件夹,就可以看到⽣成的安装⽂件⽣成的setup.exe与setup.msi的区别setup.exe⾥边包含了对安装程序的⼀些条件的检测,⽐如需要.net的版本是否安装等,当条件具备后,setup.exe接着调⽤setup.msi,⽽setup.msi则可以直接运⾏,如果你确定条件都具备的情况下。
3、注册COM组件
对于很多文件而言,安装程序只要将他们从源文件处复制到目标系统中就可以了,但是对于某些文件,安装程序就要在目标系统中注册他们,比如,自注册文件或者ActiveX 控件。
下面我演示一下如何在你的安装工程中注册一个G729AEC.dll,一个com组件。
1、首先打开File 和Folders视图如下图
图42
2、在Files and Folders视图的上部,Add new components to the feature列表框中选择一个你的安装程序名称。
这里我选择client
3、在下面的安装目录上右键单击,在弹出菜单上选择Launch Component wizard项。
图43
4、在弹出的添加组件向导中选择“Let me select a type and define the component myself”,单击下一步。
图44
5、选择你要添加组件的类别,然后写下你的组件的名称
图45
6、下面选择你的组件在目标机器上的位置你可以选择放到安装目录下,也可以选择放到W inNT系统目录下
图46
7、单击右侧的浏览按钮,选择你的组件。
见图47,48
图47
图48
8、单击完成就将一个com组件添加到安装工程中了
图49
Ok,现在运行我们的安装包就可以将G729AEC.dll安装目标机器上,并注册。
Installshield使用1 说明(适用范围)1.1IS各工程介绍IS将安装工程根据工程的特点分了几大类:InstallScript ;Windows Installer;Universal installer。
其中,Universal这个比较好理解,大概就是用来做跨平台的安装程序。
InstallScript 和Windows Installer的区别,我到是一直不是很清楚,大概意思就是如果你使用InstallScript模式是使用脚本来驱动安装界面,使用Windows Installer则主要是使用操作系统自带的安装服务来驱动安装。
在每个大类里面有划分了不同的小类。
这里请参考IS帮助中的说明。
2 COMMON篇之InstallScript Porject2.1使用向导做一个简单的安装包2.1.1了解你要安装的程序首先你要清楚,你的程序所需要的运行环境要求。
这个安装包例子中,我们要打包这样一个系统:主程序是LearnQClient.exe,rtcdll.dll,ImageOle.dll,dxmrtp.dll,dsoframer.ocx,config.ini,许可协议.txt;它运行时需要读取当前目录下的config.ini,由于这个程序是用VC开发的,所以还需要运行的机器上有vc的运行库。
具备了这个环境,LearnQClient.exe程序才能正常运行起来。
这就要求我们做好的安装程序安装时要将LearnQClient.exe,rtcdll.dll,ImageOle.dll, dxmrtp.dll,dsoframer.ocx,config.ini拷贝到指定的安装目录,也可将ImageOle.dll,dsoframer.ocx拷贝到当前系统的系统目录(windows9x中系统目录是windows/system;windows 2000/xp的系统目录是system32)。
同时要实现安装的时候将VC6的运行库安装到目标机器上;其中帮助文件是可选择安装的。
程序打包心得(如何打包第三方控件)
打包工具:vc安装包自带InstallShield
最初打包后在别人机器上运行弹出Assert错误对话框,提示dlgdata.cpp 43行错误,网上说可能有三种原因:一是控件ID不存在,二是控件未创建,三是控件的类型不对看看DoDataExchange函数
按照网上提示排除了三种情况的可能性,程序依然弹出Assert错误对话框。
点击Assert错误对话框的“忽略”按钮,出现winocc.cpp 301 以及“试图执行系统不支持的操作”等错误提示框,程序虽然弹出运行界面,但ixyplotx控件全部没有显示出来,再次上网搜索“试图执行系统不支持的操作”错误的原因,网上说可能是ixyplotx控件(第三方控件)在别人机器上运行需要注册,
网上搜索注册方法有三种:
1. 使用Regsvr3
2.exe程序对ActiveX控件进行注册;
2. 使用安装程序制作软件:InstallShield;
3. 在应用程序中加入注册代码。
接下来尝试用第二种方法来看能否解决上述错误。
经过多次试验掌握了InstallShield for vc的使用方法后,解决了上述问题,在别人机器上能正常安装运行,ixyplotx控件亦正常显示。
在InstallShield中如何注册ixyplotx控件请参照以下步骤:
1 、在file groups新建文件夹Activex,将其self-registered属性改为Yes
图1
2、点击Activex,弹出Links,右键点击Links,选择Insert file,找到ixyplotx 控件所在的文件夹,选择需要注册的控件。
图2
点击打开按钮,此时程序所需控件全部添加到Activex-》Links下,如下图所示:
图3
3、选择Components-》Program Executables,点击Included File Groups属性,弹出对话框:
图4
点击Add:
此处可以看到此前在File Groups添加的Activex文件夹,选择它,点OK。
Included File Groups属性框变为:
至此,ixyplotx控件成功添加至安装程序。
至于如何完整的安装程序制作这里不在讨论,请参照帮助文件或网上资料很多。
Ps:注意选项卡中文件(File Groups)和组件(Components)的区别:
组件是安装文件传输的基础单位,组件由文件组组成(即通过图4所示的Add 按钮向组件中添加程序所需文件,包括第三方控件。
)。