installshield打包完整示例
C#使用InstallerProjects打包桌面应用程序的完整步骤

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,如下图:点击确定,我们可以看到如下窗⼝。
Installshield终极使用教程

Installshield终极使⽤教程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)。
如何使用VFP9.0自带的InstallShield制作安装程序

如何使用VFP9.0自带的InstallShield制作安装程序从Visual Foxpro 7.0开始,取消了一直使用的安装向导来制作安装程序,而是在发布包中附带了一个有功能限制的InstallShield Express软件,利用该软件可以实现应用程序的安装程序的制作。
本文介绍如何使用VFP9.0自带的InstallShield制作安装程序。
一、首先安装VFP9.0自带的InstallShield程序在VFP9.0的安装包中,自带有InstallShield的安装程序,该程序在一个名为installshield 的文件夹中,打开该文件夹,双击那个名为isxfoxpro.exe的文件,可启动安装向导,然后按向导操作,即可完成对InstallShield Express 5.0软件的安装。
二、使用InstallShield Express 5.0制作安装程序启动InstallShield Express 5.0 for visual foxpro后,出现三个页面,它们是Start Page(开始页面)、Projecte Assistant(项目助理)和Installation Designer(安装设计)。
下面分别介绍每页中的具体设置方法。
(一) Start Page(开始页面)在Project Tasks(项目任务栏)中选Create a new project(建立一个新项目)项,打开New Project对话框,选“Express Project”:在Project Name栏填入你的项目名称;在Project Language 选择语言,一般选Chinese(Simplified);在Location填入生成的安装程序的路径,并将下面的“Create project file in‘Project Name’subfolder”选项打钩。
新建项目完成,点击“OK”进入下页(Projecte Assistant)。
制作自己的Setup.exe-程序打包详解(基于VisualStudio2015)

所谓Primary output,即程序主体,包括程序的启动和入口。 注意,如果目标工程未添加到本安装包解决方案里,弹出的弹窗是空的,无法勾选! 进而点击“Add Files”,添加本目标程序引用的DLL及其他所需文件(这些文件会在程序安装完后存在于安装目录下):
注意,解决方案浏览器中的AppDemo工程,是不存在的,这里存在,是我后来添加的(因没添加引起的问题,后面详述),实验在前教程 在后,为免去麻烦,在不至于引起理解错误的前提下,我也不把它特意Exclude出去了,直接截图上来,在此作个说明。 3、以上界面中下方的一些列步骤,即为部署过程,一步步来: 1)Application Information:望文生义即可,按要求填写; 2)Installation Requirements:指定本程序支持的OS平台,以及需要配套安装的软件。无则选“No”; 3)Application Files:添加程序文件:
程序打包
为叙述清晰,以下将要打包的程序称为目标程序,即示例中的AppDemo工程,而安装程序则称为安装包,即示例中的SetupDemo工 程。具体步骤如下: 1、同样,打开Visual Studio 2015>New Project...,一步步点击,直至看到上图内容,点击红圈部分,并按需要进行相关命名,此处作为示 例,命名为SetupDemo,最后点击“OK”,打开界面如下:
按照以下步骤安装InstallShield 2015 Limited Edition: 1、打开Visual Studio 2015>New Project...,一步步点击,直至看到如下内容:
InstallShield详细制作说明

虽然网上关于InstallShield的制作说明已经很多,但是看的时候还是会有些晕乎乎的,不得不说很复杂。
前段时候做了一次,后面需要升级,在重新做的时候发现有些地方自己又忘了,所以有必须将自己看的教程和实际操作的体会结合起来,认真的写个特别详细的制作说明,使步骤尽可能简化清晰,为了自己也为其他同仁。
各位可以先下载已做好的安装包,看看是否符合你的需求。
一、在制作安装包前,先整理一下安装文件先来看“先决条件安装文件”,这里我们用来存放运行该产品需要的基本环境(比如:Net Framework、数据库等)的安装文件。
另外还放了图标和许可协议,制作的时候需要,放一起便于管理。
再来看看“XX软件”,可以看看QQ在安装后的开始菜单里,会先有腾讯软件->QQ2013->QQ 这样的目录结构,这样的结构使得一个公司的产品放在一起便于用户查看。
所以我也采用这种结构来先整理目录结构,这个结构也是用户安装产品后的目录结构。
上面APP_1和APP_2是独立的应用分开放,外面的数据库配置是公用部分放最外面。
当然,“XX产品”里面的目录需要根据你实际情况来决定。
不过,在你制作安装包前,一直要试一下各个exe程序能不能正常运行,否则做好后运行不了,找不到原因就麻烦了,毕竟快捷方式只是个链接。
这里说明一下为什么会有这个DataBaseSetting.exe呢,因为我们的产品可能需要新建数据库、需要修改注册表等操作,但是用InstallShield来做这些,对于不熟悉的人来说还是很麻烦的,或许就不能做,所以还是用C#写了个小程序来做这些工作要简单的多,只是要多点下按钮,但更灵活。
二、新建一个“InstallScript MSI Project”工程三、在引导条上配置基本属性Project Assistant是类似于界面操作【Project Assistant】->【Application Information】,输入公司名,产品名,版本号,网址。
Installshield9使用说明

Installshield 9 使用说明一、向导部分刚打开文档时的主UI最近编辑文档以上为intallshiel后的主UI当前还未打开任何的文档新建文档新建文档类型通常选择第一个就可以向导UI1 2 3 4 5 6 7 8 9程序的基本信息,包括公司名称,程序名称,版本号以及公司网址等。
以上信息将会在安装过程中的UI中显示。
2.Installation architecture:组件的建立,类似于office安装过程中的程序模块选择。
例如。
在office安装过程中要全部安装,还是只安装word,excel等。
3.Application Files文件的添加:在此处将所有的程序要使用到的文件添加到这里。
主要包括以下文件夹3.1 script-defined folders:脚本定义文件夹:放到这里面的文件,其安装目录由脚本中FeatureSetTarget(MEDIA,"<para1>",para2);函数来重新定义。
para1在此定义的文件夹名。
Para2为目标文件夹名3.2 application target folder:安装目标文件夹。
即实际安装过程中的目标文件夹。
一般在安装过程中由用户来选择,当然可以指定默认。
3.3 program files:program file文件夹,如果有特定的文件必须放在此文件夹里。
就放这个位置吧。
3.4 windows:同上。
这两个文件夹是系统自动搜索的。
如果是自己安装的操作系统,比如将操作系统安装在其它盘符,一样可以搜到4.Application redistributables插件选择安装:如果你的程序需要以上的动态库连接,就打上5Application shortcuts快捷方式的建立点击New以后,会出现选择文件的对话框。
当然是已经在Application Files 中添加过的文件。
默认的可执行文件会自动添加。
如果不想用删掉即可6Application registery注册表添加:以上右击可以添加一个新的注册表项,其结构与windows自动的regedit十分类似。
用InstallShield打包多个需要分别安装的软件

用InstallShield打包多个需要分别安装的软件需求:要将两个软件打包到一个InstallShield安装包中,但这两个软件又要分别安装。
明确要求后首先想到的是以前做的InstallShield安装包都只能运行一次安装,如果软件已经安装,再次运行安装包时就会卸载已安装的软件,这样肯定不行,必须得让其可以多次运行安装而不用卸载才行,通过查找和试验发现选择Project->Settings...->Maintenance下的Multi-Instance即可实现。
第二步是如何简便的将两个软件放到一个包中且要方便选择安装,我实现的方法是Setup Design下创建两个Feature,命名为软件1,软件2(实际编写中根据自己软件名进行命名),然后在两个Feature下分别加入两个软件所有需要安装的文件。
第三步是在InstallScript中编写选择安装的代码,在OnFirstUIB efore函数的Dlg_Start加入AskOptions对话框,如:nResult = AskOptions ( EXCLUSIVE , "请选择要安装的软件版本" , "软件1" , bvCheck1 , "软件2" , bvCheck2 );然后根据选择返回的值设置选择的Feature,在Dlg_SdFeatureT ree中加入一下代码:if((bvCheck1 = 1)) then//安装软件1FeatureSelectItem (MEDIA, "软件1", TRUE);FeatureSelectItem (MEDIA, "软件2", FALSE);FeatureSetData (MEDIA, "软件1", COMPONENT_FIELD_VISIB LE, FALSE, "随便写个什么");if((bvCheck2 = 1)) //安装软件2FeatureSelectItem (MEDIA, "软件1", FALSE);FeatureSelectItem (MEDIA, "软件2", TRUE);FeatureSetData (MEDIA, "软件2", COMPONENT_FIELD_VISIB LE, FALSE, "随便什么");endif;第四步根据选择设置软件名,安装过程中和安装后在添加/删除列表里面就会显示你安装的软件的名称,如:IFX_PRODUCT_DISPLAY_NAME = "软件1" ;IFX_PRODUCT_NAME = "软件1" ;IFX_SETUP_TITLE = IFX_PRODUCT_NAME;最后编译就可执行安装了,安装后在添加/删除列表里会分别显示两个软件的名称,可对两个软件分别执行卸载。
InstallShield简单用法

InstallShield 简单用法一、拷贝模板:1、将以前制作的InstallShield Project文件夹(一般存放在installproject目录下,一般名为…系统)执行复制、粘贴操作。
2、将文件夹及其文件夹下的.ipr文件的名称修改为将要生成的新系统,如图1-1所示。
图1-13、双击ipr文件,进入InstallShield编辑该系统的安装配置。
二、编辑本Project的属性:1、执行菜单“Project”-->“Settings”(如图2-1)打开如图2-2所示的窗口:图2-1图2-22、单击图2-2中的“New GUID”按钮生成新的ID号(非常重要,必须执行)。
3、单击图2-2中的“Owner”标签(如图2-3所示),将新系统的名称填入“Product”中,其他内容看情况填写即可。
图2-3三、编程与设置:1、设置安装步骤:(1)、单击如图3-1所示的标签,显示如图3-2的代码窗口:图3-1图3-2(代码编辑窗口)(2)各段代码简要说明:A、如图3-3所示代码段是定义程序的安装路径,需要根据本系统的情况进行修改。
图3-3B、如图3-4所示的代码段是让安装程序的用户填写单位编码,如果不需要填写单位编码请将这段程序注释掉。
图3-4C、如图3-5所示的代码段用于向注册表写入信息。
请根据需要修改主键、键值的名称和数值。
对于不需要单位编码的系统可将有关“HKEY_CURRENT_USER”的操作注释掉。
写入注册表的有关ORACLE字符集的程序必不可少。
图3-52、修改安装的初始欢迎图片。
单击如图3-6所示的标签,可以看到如图3-7所示的界面。
图3-6图3-7右键单击图片文件,选择“Delete”将其删除。
然后单击右键选择“Insert Files”菜单添加新的图片。
如果不再添加新的图片安装时则不会显示初始欢迎图片。
3、添加需要打包的文件连接。
单击如图3-8的标签并将“App Executable”展开可以看到如图3-9所示的界面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前言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注册服务的功能,该程序最好由安装程序启动,而不是由客户手动启动)。
6.希望有反安装程序本文提到的“外部”指不打包在安装程序里的,与安装程序一起存放在光盘里的一些文件夹,这些文件夹包含了安装中所需要的文件,同时也可能有其他用途,因此不适合直接压缩打包在安装程序里。
该实例实现了如下功能:1.显示软件许可协议2.判断是否安装了本软件所需要的先决软件JKD1.6.0_04,如无,则启动外部安装程序进行安装(同样原理可以用来判断是否安装了其他软件,只要该软件在注册表中有键值)3.安装允许用户选择需要安装的组件4.用户的输入信息、所选安装路径、所选安装组件将显示在安装界面上(Installshield虽然自带了此界面,但是默认是显示为空的,需要写脚本来显示信息)5.根据用户选择的组件,在开始菜单显示程序的快捷方式(同样适用于桌面快捷方式,后面做详细说明)6.根据用户选择的组件,从外部文件夹拷贝相应的文件到安装目标路径的文件夹中7.根据从外部拷贝进来的文件,创建快捷方式(这里主要是拷贝文档,并在开始菜单中创建快捷方式)8.在安装结束时,显示readme.txt文件9.在安装结束后,启动指定的程序10.完美卸载笔者所用的环境为Installshield 12 Premier Edition,Windows XP with SP2, 该环境下建立的工程可以直接使用在Installshield 2008 Premier Edition下,Installshield 2008在打开Installshield 12所建的工程时会提示你是否需要进行Upgrade,确认即可,软件会自动为你进行升级,很方便。
下面我们一步一步来建立一个基本的工程,并且使用脚本来完善和丰富所需功能第一部分:基本设置1.打开Installshield 12 Premier Edition,新建一个Installscript MSI Project,这种被称之为半脚本程序,因为兼具Basic Project基本类型和Installscript Project全脚本类型两者的优点,我比较喜欢用。
像我这样需求的,既要用到Wizard的便利,又想写一点脚本来实现一点自定义操作的,就比较适合用这种类型啦。
选择类型为Windows Installer | InstallScript MSI Projcet,输入工程名,指定工程所在的文件夹。
2.界面会切换到Project Assistant,我们先从这里开始把工程的基本组件和基本文件建立好。
3.在Project Assistant界面的底部,会有一个引导动作条,在建立该工程的基本结构和文件时,我们都将在此界面进行操作,下文都将以“引导条”来指代这个引导动作条。
4.点击引导条上的Application Information这里输入:公司名,公司名将会出现在Setup.exe的注解中软件名,将会出现在安装过程的左上角标题栏上版本号,没看到在哪,不过自己比较方便地知道自己在编译哪个版本的软件公司网址,没看到在哪,而且如果该公司没有网址呢?而且这里有点bug,好像默认的值总是会报一个String_ID1为空的错误,自己输入一个网址就不会报错。
是否在你创建了更新时自动通知最终用户,没用过,我都选了No。
选择一个图标,这个图标会出现在“添加或删除程序”里,我一般用默认的,当然你可以替换成自己想要的图标。
5.点击引导条上的Installation Requirement这里选择对操作系统和一些软件的需求。
根据自己需要来选择是否要求操作系统的版本,已经是否要求安装了某些软件。
6.点击引导条上的Installation Architecture这是个十分有用的设置,对于本文所用的分布式软件来说非常合适,分布式软件的每个组件可以设置为一个Feature,用户可以自由选择安装某些功能。
将选项Do you want to customize your Installation选择为Yes。
点击选中根节点Installation Architecture,点击New创建新的Feature,可以为每个Feature指定新名称。
还可以在Feature下创建子Feature,比如如果文档Feature下包括软件本身文档,和软件所需的运行环境的文档,那么可以创建两个子Feature,分别包含两种文档,用户在安装时就可以选择安装部分或者全部文档了。
这里我们没有用到子Feature,用途和普通Feature一样。
不出现选择安装的组件出现选择安装组件这里,建立好所有Feature后,我们将切换到Installation Designer做一个设置找到Installation Designer页面上左边导航树Organization | Features分支,你会看到这里Features 都显示为原始的名称,而非我们改过的名字,因为Feature有Name和Display Name两种名称,我们刚才改的不过是Display Name,为了便于查看和使用,我们在这里把Name也改一下注意Name不可以有空格,可以使用下划线继续切换回Project Assistant7. 点击引导条上的Application Files我们将在这里对安装路径进行微调,并且为每个Feature指定需要安装的文件这里我不想使用Program Files | Company Name | Product Name这个路径,我想使用Program Files | Product Name,我直接点击选中My Product Name[INSTALLDIR]拖动到ProgramFileFolder下,还可以直接将My Product Name 改成自己想要的文件夹名字接下来,为每个Feature指定要安装的文件。
打开这个下拉列表,所有的Feature都在这里,按顺序来给每一个Feature建立文件夹,并且导入所需的文件。
选择第一个Feature,即Server,点击My Product Name[INSTALLDIR]节点,右键点击,在菜单上选择New Folder来创建一个文件夹。
创建一个Server文件夹,这个文件夹将用来存放该组件需要的一些文件。
再在Server文件夹下创建一个icon文件夹,存放该组件所用的图标。
然后为该Feature添加安装时该Feature要安装的文件。
这里我们建立的icon文件夹是用来存放这个feature在后面要建立快捷方式时使用的图标的。
为这个icon文件夹添加相应的图标文件,并且记住图标文件的来源文件夹,后面设置快捷方式的时候要用。
点击选中要添加文件的文件夹,然后点击右下角的Add Files,然后添加文件接下来我们为Feature添加文件夹,如果这个文件夹中的全部文件都为这个Feature所需。
添加文件夹的好处在于只要文件夹位置和名称不变,那么文件夹里面的文件都是动态加载的,有多少加载多少,不用考虑文件名的改动带来的影响。
点击选中要添加文件夹的文件夹,然后点击右下角的Add Folders,然后添加文件夹。
选中文件夹,点击确定。
会询问你是否要使用动态文件链接,我都选择确定,好处就在于我刚才上面所述。
显示了源文件夹,如果这个文件夹下有子文件夹,并且也需要一并添加进来的话,务必钩选Include subfolders选项。
这里还允许做一些简单设置来包含或者排除一些特定文件,支持通配符。
点击OK确定加入文件夹。
如法炮制为每个Feature建立文件夹,并且添加文件,最后效果如图所示Document这个Feature,除了文件所用的图标外,什么都不要添加,后面我们将用安装时实时拷贝的方式来拷贝文档进来。
8. 接下来我们为可执行文件创建快捷方式。
点击引导条上的Application Shortcuts点击New新建一个快捷方式选择一个要建立快捷方式的Feature。
如果要建立快捷方式的程序为非.exe形式,请把Files Of选择选为All Files(*.*)格式。
我们的程序安装目标路径设置在Program Files下,因此双击[ProgramFilesFolder]打开,层层点击进入。
我们这里要为client.bat建立一个快捷方式,因为这个是启动用的批处理文件。
Installshield可以自动监测到.exe文件的存在,自动生成快捷方式,用户只需要做一些适当修改即可。
新建的快捷方式将出现在这里,名字不好听,样子也不好看,我们将为它改一个名字,并且换一个图标。