installutil使用
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)。
Windows系统使用cmd命令安装和卸载服务

Windows系统中使用cmd命令安装和卸载服务方法如下:
第一种方法:
1. 开始 ->运行 ->cmd
2. cd到C:\WINDOWS\\Framework\v2.0.50727(Framework版本号按IIS配置)
3. 安装服务:运行命令行 InstallUtil.exe E:/test.exe
卸载服务:运行命令行 InstallUtil.exe -u E:/test.exe
这样就能删除了,但如果还是不能删除的话,没关系下面还有一种方法。
第二种方法:
运行-->cmd-->到c:\windows\system32文件夹下-->输入sc delete <服务名称>,然后就可以把服务卸载了
这时候,我们可以用另外一个命令来卸载,如下:
C:\WINDOWS\system32>sc delete MyService
其中的 MyService 是你的服务的名字,比如如下的服务截图,它的卸载命令就可以如下写:
sc delete "服务名"
当然你也可以用这个工具create,start,stop服务。
比如,我们就可以用下面的命令,安装服务,并把服务启动起来。
installutil HongjunGuo.JobsWindowsService.exe
sc start "服务名"。
利用dotNet命令行工具

利用.NET Framework命令行工具Visual Studio .NET 是开发 .NET 应用程序的最流行的方法,.NET 框架提供了非常多的命令工具。
此外,.NET Framework SDK 还提供了更多的命令行工具。
事实上,像Visual Studio 和SharpDevelop 之类的 IDE 通常也都提供这些工具。
下面让我们详细看一下随 .NET Framework 一起安装的这些工具,以及如何在项目中使用它们。
(注意:在这篇文章中我使用的是 .NET Framework 1.1 版本。
)使用 .NET Framework.NET Framework 命令行程序的默认安装目录是:C:\(base Windowsdirectory)\\Framework\(framework version)。
在我的计算机上,由于安装的操作系统是 Windows 2000,所以 .NET Framework 1.1 版本安装在 winnt 目录下,所以其路径是:C:\winnt\\Framework\v1.1.4322这个目录包含无数的 dll,配置文件和可执行文件,等等。
在这篇文章中,我将把重点放在可执行文件上。
下面是这些程序的一个纲要:Al.exe:程序集链接器(Assembly Linker),该工具从一个或多个模块或者资源文件生成一个带有一个程序集清单的文件。
模块是一个没有程序集清单的微软中间语言文件(MSIL)。
所有的 Visual Studio 编译器都生成程序集。
然而,如果你有一个或多个模块(没有清单的元数据),你可以利用 Al.exe 工具使用一个独立文件中的清单创建一个程序集。
Aspnet_regiis.exe:这个工具允许你在 IIS 上安装 。
此外,它还可以简化同时运行的多个 版本的使用。
它允许你为 应用程序更新脚本映射以指向与该工具关联的 ISAPI 版本。
这个工具还可以用来显示所有安装的 版本的状态,注册 版本以及工具,创建客户端脚本目录,完成其它配置操作。
installshield2010学习文档

Installshield学习资料Installshield是一个制作安装程序的软件,下面以一个实例讲述installshield的简单用法。
1、打开installshield软件,界面如下2、新建一个项目,点击file菜单—》new…,界面如下,选择如下面红色区域,输入项目名字,点击“ok”3、进入下面的界面,下面的那一条,是新建一个安装程序的向导。
4、点击向导的第一步,出现如下界面,输入的相应的信息5、点击向导的第二步6、出现如下界面,点击Yes单选按钮7、如下图,用“New”按钮建立两个features,分别是java和tomcat,用来存放安装文件,8、点击向导的第三步“Application Files”9、出现以下界面,下拉框选中“java”,在左边选中“Application TargetFolder”,点击右下角的“Add Folders”,如第二个图,选中已经准备好的Java安装文件(就是JAVA安装以后的生成的那些文件);点击“确定”出现以下页面点击“Yes”如上设置,点击“OK”.10、选中下拉框选中“tomcat”,方法同上,设置tomcat下的安装文件;再添加一个文件startup.bat,用来做快捷方式时用(在12步时用),注意添加文件时点击“Add Files”按钮。
11、点击向导的第四步:“Application Shortcuts”12、点击“New”选中“startup.bat”,13、修改安装协议:点击“Installation Designer”--- 选择左边的“Behavior and Logic”,如下选择14、新建一个自己的文档,输入协议内容,名字为license.rtf,回到刚才界面,右边的部分如下,将右边的license.rtf删除,在右边的部分右击鼠标,可以选择插入文件,将自己的文件插入即可15、设置默认安装路径:点击“Installation Designer”---→选择左边的“Behavior and Logic”-→”InstallScript”,如下以下界面16、如图选择17、代码做如下更改:18、如图选择19、这只是简单的安装。
Windows Service:SC 和 InstallUtil 区别

就是在部署和卸载Windows Service 的时候,我介绍了两种不同的命令:SC和InstallUtil,为什么在使用SC的时候,内部不需要创建ProjectInstaller,而使用InstallUtil的时候,却一定要创建ProjectInstaller,带着疑问,查阅了一些资料,终于找出了一些线索,不足的地方还请懂的指点一下。
原来以为SC是最底层的命令行,而InstallUtil是调用SC命令来创建的,可惜我犯了个比较低级的错误,所有的一切应该都来源于Windows API,不管是SC,还是InstallUtil。
我们先来看看InstallUtil,MSDN的解释是:安装程序工具使您得以通过在执行指定程序集中的安装程序组件来安装和卸载服务器资源,。
此工具与System.Configuration.Install 命名空间中的类一起工作。
Installutil.exe 使用反射检查指定的程序集并查找将RunInstallerAttribute设置为true的所有Installer类型。
然后此工具在Installer类型的每个实例上执行Install 方法或Uninstall 方法。
Installutil.exe 以事务性方式执行安装;如果有一个程序集未能安装,则Installutil.exe 回滚其他所有程序集的安装。
卸载不是事务性的。
这样一看,InstallUtil应该是调用了我们在Windows Service中添加的ProjectInstaller中的serviceInstaller1和serviceProcessInstaller1,后两者是最终部署和卸载Windows Service 的Installer,那么serviceInstaller1和serviceProcessInstaller1之间又是什么关系呢??用Reflect 查看了下这两者的源码,我目前的结论大概是:serviceProcessInstaller1主要是存储了一些与Account相关的信息,并且在Install的时候检查Account的权限;但是serviceInstaller1则是用来存储与服务相关的信息,比如:服务名称,服务描述,启动模式,等等,并且在Install的时候创建服务;serviceInstaller1在Install的时候做了以下几件事情:1.LogMessage: 记录Install 日志2.CheckEnvironment : 检查安装环境,主要是系统的OS版本和Service环境的OS版本是否一致查找父级Installer(Parent属性)以及父级Installer的子Installer中有没有ServiceProcessInstaller,并将找到的ServiceProcessInstaller赋值给该ServiceInstaller的Parent属性,同时将ServiceProcessInstaller中有关Account的信息给拷贝过来就是在部署和卸载Windows Service 的时候,我介绍了两种不同的命令:SC和InstallUtil,为什么在使用SC的时候,内部不需要创建ProjectInstaller,而使用InstallUtil的时候,却一定要创建ProjectInstaller,带着疑问,查阅了一些资料,终于找出了一些线索,不足的地方还请懂的指点一下。
Windows服务调试

Windows服务的调试
Windows服务的调试相对比较困难,因为必须得先安装到操作系统中,这样就脱离了IDE了,所以调试相对麻烦一些。
1.调试前的准备工作,为了能顺利的进行调试,需要启动一个服务“Terminal Services”(注:此服务在WIN7中叫Remote Desktop Services)。
2.将正在编写的Windows服务中的OnStart的方法中,最前面添加一条,让线程休息30秒的语句;在休息的后面的语句上加上断点。
3.重新生成Windows服务工程。
4.使用命令行命令installutil安装Windows服务。
5.打开服务管理器,找到刚才安装的Windows服务。
6.启动这个服务。
7.在IDE中选择“调试”菜单,选择“附加到进程”。
8.在“可用进程”列表中找到刚才启动的服务,附了个加。
9.这是还没有执行到断点的时候的情况。
10.这是命中断点的时候的情况。
到此,咱们的Windows服务就可以进行调试了。
关键点1:Terminal Services必须启动。
关键点2:要调试的服务必须预先安装。
关键点3:必须在OnStart的第一句之前写上让线程休息一段时间,因为一旦服务启动,那么一定调用了OnStart方法,如果这时候再去手忙脚乱的附加到进程,可能等你附加完成,断点的语句早都已经执行过了,所以当服务启动的时候,先休息一会是必要的,这样,我们的调试过程就不会手忙脚乱的了。
install的用法

install的用法
1. “Install”可以表示安装软件或硬件呢,就像你给你的电脑装上一个超酷的游戏,比如“我昨天 install 了一款好玩的游戏,现在随时都能玩啦”。
2. 当你把新家具搬进房间,那不也可以说是 install 新家具嘛,像“他今天把新沙发 install 好了,客厅一下子焕然一新”。
3. 有没有想过给你的生活 install 一些新的习惯呀?比如每天早起锻炼,“她决定 install 这个早起锻炼的习惯,让自己更健康”。
4. 建房子也能用 install 这个词呢,工人把一块块砖 install 起来,变成坚固的房子,“他们慢慢地 install 起了这栋漂亮的大楼”。
5. 学习新知识也像是在心里 install 新的程序呀,“他努力地在脑子里install 各种知识,让自己变得更聪明”。
6. 心灵上也可以 install 积极的信念呢,“我们要在心中 install 相信自己能成功的信念”。
7. 有时候,在团队中 install 良好的合作氛围也是超级重要的呀,“大家一起努力 install 这种积极的合作氛围吧”。
总之,“install”的用法真是多种多样,好好运用它能让我们的表达更丰富呢!。
Windows Service:SC 和 InstallUtil 区别

就是在部署和卸载Windows Service 的时候,我介绍了两种不同的命令:SC和InstallUtil,为什么在使用SC的时候,内部不需要创建ProjectInstaller,而使用InstallUtil的时候,却一定要创建ProjectInstaller,带着疑问,查阅了一些资料,终于找出了一些线索,不足的地方还请懂的指点一下。
原来以为SC是最底层的命令行,而InstallUtil是调用SC命令来创建的,可惜我犯了个比较低级的错误,所有的一切应该都来源于Windows API,不管是SC,还是InstallUtil。
我们先来看看InstallUtil,MSDN的解释是:安装程序工具使您得以通过在执行指定程序集中的安装程序组件来安装和卸载服务器资源,。
此工具与System.Configuration.Install 命名空间中的类一起工作。
Installutil.exe 使用反射检查指定的程序集并查找将RunInstallerAttribute设置为true的所有Installer类型。
然后此工具在Installer类型的每个实例上执行Install 方法或Uninstall 方法。
Installutil.exe 以事务性方式执行安装;如果有一个程序集未能安装,则Installutil.exe 回滚其他所有程序集的安装。
卸载不是事务性的。
这样一看,InstallUtil应该是调用了我们在Windows Service中添加的ProjectInstaller中的serviceInstaller1和serviceProcessInstaller1,后两者是最终部署和卸载Windows Service 的Installer,那么serviceInstaller1和serviceProcessInstaller1之间又是什么关系呢??用Reflect 查看了下这两者的源码,我目前的结论大概是:serviceProcessInstaller1主要是存储了一些与Account相关的信息,并且在Install的时候检查Account的权限;但是serviceInstaller1则是用来存储与服务相关的信息,比如:服务名称,服务描述,启动模式,等等,并且在Install的时候创建服务;serviceInstaller1在Install的时候做了以下几件事情:1.LogMessage: 记录Install 日志2.CheckEnvironment : 检查安装环境,主要是系统的OS版本和Service环境的OS版本是否一致查找父级Installer(Parent属性)以及父级Installer的子Installer中有没有ServiceProcessInstaller,并将找到的ServiceProcessInstaller赋值给该ServiceInstaller的Parent属性,同时将ServiceProcessInstaller中有关Account的信息给拷贝过来就是在部署和卸载Windows Service 的时候,我介绍了两种不同的命令:SC和InstallUtil,为什么在使用SC的时候,内部不需要创建ProjectInstaller,而使用InstallUtil的时候,却一定要创建ProjectInstaller,带着疑问,查阅了一些资料,终于找出了一些线索,不足的地方还请懂的指点一下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
InstallUtil在windows服务中的使用
1、新建一个Windows Service的方法:
1. 打开Visual Studio 2008新建一个project Solution;
2. 选择Windows->windows Service,修改服务名称:MyFirstService;
3. 在默认窗口Service1中右键Add Install,自动生成两个类。
4. 修改serviceInstaller1的属性:
a)ServiceName =”FirstService”;//设置服务名称
b)StartType = Automatic;//启动的模式有三种:“自动”、“手动”、“禁用”。
事实上,在“我的电脑”的“管理”->“服务”中,还有一种模式:“自动(延迟启动)”
c)Modifiers=public;
还有一些属性,比如DisplayName对应下图中的“显示名称”,ServiceName对应下图中的“服务名称”,而(Name)则对应,这些属性都是可以进行相应的修改的
5. 设置serviceProcessInstaller1组件的属性
1) Account = LocalSystem; //为最大的权限此属性还包括:LocalService、networkService、User(默认状态,如果使用User,则在安装的时候需要提供用户名和密码),如需要详细了解该属性,可以参照:
/zh-cn/system.serviceprocess.serviceprocessinstaller .account(VS.90).aspx
2) Modifiers=public;
6. 生成解决方案:选择release模式右键生成解决方案,则在相应的路径当中就会出现MyFirstService.exe文件。
7.使用installutil安装新建好的MyFirstService,方法如下:
一、打开Visual Studio 2008-> Visual Studio Tools-> Visual Studio 2008 Command Prompt。
二、使用命令:installutil (服务的绝对路径),点击运行,即可安装服务。
以下有几个需要注意的问题:
第一:上述二的“服务绝对路径”犹如:e:\新建文件夹
\test\MyFirstService\MyFirstService\bin\release\MyFirstService.exe,在这个地方需要注意的是:必须选择release下生成solution。
默认是在debug下生成solution。
第二:针对window7用户,在安装的过程中容易出现的几个错误:
∙使用的电脑不是使用系统管理员的账号登录,则会出现下面的错误。
(我已经做过测试),特别是在使用window7的用户特别需要注意,系统默认system账号是“禁用”模式。
∙第二种错误的可能就是服务已经存在,则会出现下面的错误
为了避免这种错误的发生,我们应该在安装服务的时候首先进行第三步(即如果可以的话,首先卸载已存在的服务)。
第三:用命令:installutil /u (服务的绝对路径),点击运行,即可卸载服务。
类似地,“服务的绝对路径”犹如:
e:\新建文件夹\test\MyFirstService\MyFirstService\bin\release\MyFirstService.exe。
在卸载一个服务的时候可能会出现以下两种情况:
∙正常情况:服务存在,而且已经启动,运行卸载,效果如下图:
当然,如果服务存在,但未启动,则在卸载的时候不会出现“试图停止服务”这个命令。
异常情况:服务不存在,或者二次卸载,则会出现以下情况:
2、installutil.exe的介绍。
(这一项在网上会有很多介绍,在这里只是做了一些简单的综述)
如要详细理解installutil的使用,可参照网址:
/en-us/library/50614e95(vs.71).aspx
当然,installutil事实上可以用于安装有.NET开发的所有应用安装程序。
当我们在Visual Studio 2008 Command Prompt中输入命令:installutil /h的时候,会打开installutil的所有帮助文档,如下:
第一个为默认情况下为安装程序所在的绝对路径和安装文件名,类似前面所提到的。
而/LogFile则是说明如果在安装的过程中,需要输出相应的安装日志的时候给定的日志文件的路径和日志文件名。
当然我们最主要的是“安装”和“卸载”命令。