首页蓝耳朵|小小蓝耳朵广州图书馆外文室英语儿童读物资源介绍网佛教青年之友旧版收集永硕E盘Phonics Short Vowels Game 
用InstallShield 2010做C#写的windows服务的安装包,自动安装.Net Framework
所属栏目:winform  时间:2011-02-16 16:35  作者:狼子

两天多的时间就是摸这个东西,InstallShield最早的时候是写PB时用6.3版本打包的,后来用的是11.5版本,不写PB后,一直没有碰过,这两天大猫说InstallShield是最专业的安装软件,大家都要掌握,我就重新看了

2010 SP1的官方下载地址:http://saturn.installshield.com/product/is/2010/domestic/premier/installShield2010.exe

破解文件传了一份在永颂E盘里,在文件目录下

在windows 7下单机测试安装文件时可以用windows XP mode:http://www.nnllok.cn/Read.aspx?cid=18&id=527

下面是完整的创建步骤:

1.建一个Basic MSI Projec项目


2.添加Install Service组件

①直接转到Installation Designer下,在最右边的view list区里选择Organization -> Components


②在左边工作区,右击Components,选择Component Wizard

③第一个对话框是要求建立feature的,这个有点像是文件的分组,就是,有的项目会带有很多dll文件,可以用不同的feature把这些dll文件放在一起,以前做pb的时候就是这样子的

 这里点Yes就可以了,我选择了叫它在需要的时候自动生成feature

④进入Wizard后,选择第2项:Let me select a type and define the component

⑤选择Install Service,设置组件名称

⑥在Service Executable里,选择要安装的windows service文件,在Services里,点Add按钮,添加这个文件包含的服务,这里写的服务名称要和程序里的对应

⑦再下一步,设置Display Name,按自己的服务设置Service Type

⑧再下一步,设置服务的启动方式,我这里设置的是随机器启动:Automatically when the system starts up

⑨下一步,下一步,设置服务启动出错的时候要做什么操作,后面的就一直下一步到完成啦

3.添加Control Service组件

①重复上面①-④

②选择Control Service,我设置组件名称叫:ControlServiceComponent

③因为上面设置了Install Service组件,名称设置是叫AssignmentAlertComponent的,所以这里直接选择Service is included in this setup

 就是说这个组件要控制的服务是刚才添加的组件里的AssignmentAlert服务


④设置在组件安装完后要触发的事件,这里我设置为启动服务

⑤设置在组件被卸载的时候触发的事件,这里我设置停止并删除服务

⑥设置安装和卸载时,进程的等待状态,选默认就可以了

⑦完成

4.添加.Net Framework支持

①在view list区里选择Application Data -> Redistributables

②勾选Microsoft .NET Framework 2.0 SP1,在第一次做这个设置的时候,会自动下载到本机的


5.其它设置,这些设置可以在Project Assistant里用向导做,这些是每个安装程序都要做的,不具体说了

①Application Information,可以设置公司名称、应用程序的名称、软件版本、公司的网址、打包后的ico

②Installation Requirements,可以设置程序运行时需要什么东西支持,如果不想把.Net Framework和安装程序一起打包,想叫用户自己从网上下载安装,可以在这里设置Yes,并勾选.Net Framework的版本

③Installation Interview可以设置安装过程里的各种提示

5.生成安装文件
在Project Assistant标签里,最后一项Build Installation,是选择生成安装程序的模式的,选择Single Executable,点击最下面的Build Installations按钮,在这个is项目文件夹里,会有生成一个PROJECT_ASSISTANT文件夹,目录SINGLE_EXE_IMAGE\DiskImages\DISK1下,就是安装包了

--------------------------------------

服务控制程序的安装和卸载见:http://www.nnllok.cn/Read.aspx?cid=8&id=535

 

--------------------------------------------------

2010-03-30 18:20

关于添加.net framework的方法,上面的添加,会对版本要求好严格,就是,如果客户机器上安装了.net framework,又不是2.0 sp1版本,就会被强制安装.net framework 2.0 sp1了

下面是大猫找到的解决这个问题的办法,用这个办法不需要在Application Data -> Redistributables下勾选.net framework 2.0 sp1:

①把.net framework 2.0的安装包dotnetfx.exe改名后复制到Installshield的安装文件夹里,默认是下面的:
C:\Program Files\InstallShield\2010\Redist\0409\i386

②在Media -> Releases下如下图设置:

经测试,这个办法添加的.net framework支持,只要客户机器上安装了2.0-3.5版本,就不会被要求安装,如果客户机器上只安装了4.0版本,这个版本默认不支持2.0的程序,安装包会自动调用.net framework 2.0的安装包

小楼宝宝的涂鸦花花(Imitater)的博客起名称骨测字