最近一直在搞Windows服务,也有了不少经验,感觉权限方面确定比一般程序要受限很多,但方便性也很多。像后台运行不阻塞系统,不用用户登录之类。哈哈,扯远了,今天讲一下那个怎么给Windows服务做个安装包。为什么做安装包?当然是方便了,不用每次调用InstallUtil,还有,就是看上去正规些。
不多说了,先来看看怎么做吧。首先,当然是创建一个Windows服务的项目。这个大家应该都知道怎么做(这都不明白的留言问我),然后要给服务“添加安装程序”,如图1所示:(这一步和自己用InstallUtil注册是完全一样的)
(图1)
添加后,会出来一个serviceProcessInstal1,还有serviceInstaller1,如果你一个项目里有两个服务的话,这里就会有两个serviceInstaller类,如图2:
(图2)
图3是serviceProcessInstal1的属性页,其中Account就是指用于运行服务的帐户,如果只是用于本地,可以选LocalSystem(本地系统),这是本地的最高权限,并可以选择和桌面交互功能。如果安全性考虑的话,请选择适合自己的。
(图3)
图4是serviceInstaller2的属性页,其中DisplayName就是显示在Windows服务管理器中的服务名称,Desciption是服务的说明。下面ServiceName是服务内部名称。最关键的是下面的StartType,是指服务的启动方式,是自动,手动和禁用三种。
(图4)
下面,就是今天讲的重点了,点击“文件”->“添加”->“新建项目”(如图5)
(图5)
选择“其他项目类型”->“安装和部署”里的“安装项目”(如图6)
(图6)
建好项目后,右键刚才新建的安装项目,选择“视图”->“文件系统”(如图7)
(图7)
这时,打开了文件系统属性。可以看到,屏幕左边,出现了三项文件系统的内容,因为我们是Windows服务程序,不需要在开始菜单和桌面上放置图标,所以我们直接右键“应用程序文件夹”->“添加”->“项目输出”(如图8)
(图8)
在出来的对话框中,选择“主输出”和“Release XXX”,这个由你的项目属性决定,一般选择Release Any CPU。(如图9)
(图9)
系统会自动把项目输出文件,也就是Windows服务程序的EXE文件和所有引用的类库文件都列在中间的框中。这时,为了方便安装,我们把InstallUtil.exe和两个我自己写的批处理文件一起添加进去。添加方法类似上面,只是把“项目输出”改成“文件”。
结果如图10所示:
(图10)
接下来,就该配置一下安装过程,让安装程序自动给我们安装和卸载Windows服务。
还是右键安装项目,选“视图”->“自定义操作”,如图11:
(图11)
左边的窗口换到了自定义操作的视图了,右键“安装”->“添加自定义操作”(图12),出现的对话框中,选中“应用程序文件夹”,再选中其中的InstallUtil.exe文件(图13),添加好后,会在安装操作下面多出一个InstallUtil.exe的分支。点一下它,在右边的属性页里,设置Arguments=“ 你的Windows服务文件名”,如图14(注意文件名前要留一个空格)
(图12)
(图13)
(图14)
同样,在提交和卸载处,也添加InstallUtil.exe,不过属性页中设置Arguments=“ -u 你的Windows服务文件名”,这样,安装程序就能实现自动安装注册和卸载Windows服务了。
其实简单的做法只要在安装,提交,回滚,卸载 都添加项目的主输出的话也是可以达到自动注册/卸载服务 功能的,而且不依赖于InstallUtil.exe(如图15)
(图15)
接下来就该让Windows服务和安装项目同时被编译了。右键点击解决方案,选择“属性”(如图16),在出来的对话框中,勾上安装项目后面的生成。(如图17)
(图16)
(图17)
最后,右键解决方案,选择“生成解决方案”,这时vs会将两个项目都会编译出来。不过要注意一点:
项目的启动顺序一定要Windows服务项目在前,安装项目在后。
- 大小: 30.1 KB
- 大小: 56.8 KB
- 大小: 23.3 KB
- 大小: 26 KB
- 大小: 80.9 KB
- 大小: 69.8 KB
- 大小: 28.7 KB
- 大小: 74.4 KB
- 大小: 37.1 KB
- 大小: 67.6 KB
- 大小: 29.4 KB
- 大小: 33.3 KB
- 大小: 45.1 KB
- 大小: 26.1 KB
- 大小: 85.5 KB
- 大小: 49.4 KB
- 大小: 59.5 KB
- 大小: 27.9 KB
分享到:
相关推荐
C# VS 2010 创建、安装、调试 windows服务(windows service) 代码
详细的文档,教你如何将C#做的服务项目生成的exe文件添加到服务器(尤其是windows服务器)的服务中,从而让程序在服务中运行。
C#更改Windows防火墙设置实例程序
本文实例为大家分享了C#添加Windows服务的具体方法,供大家参考,具体内容如下 源码下载地址:http://xiazai.jb51.net/201701/yuanma/Windowsservice1(jb51.net).rar 步骤一、创建服务项目。 步骤二、添加安装程序...
把里面的IrisSkin2.dll文件添加到C#的控件中,在窗体的Load事件中 写上如下代码: skinEngine1.SkinFile = Application.StartupPath + @"\MP10.ssk";即可 需要换皮肤是,只需要将引号里的换掉
Windows Mobile使用C#发送短信息程序 使用WindowsMobile.PocketOutlook 和Microsoft.WindowsMobile.dll
整理了一点使用c#更改Windows防火墙设置的代码,有谁的程序需要修改防火墙设置时可以下载看一下
用C#语言编写的,对txt文档进行操作的程序,具有大部分Windows系统自带记事的功能.
Windows 应用程序是靠消息驱动的,在VC中我们通过 Classwizard 可以为某窗口类添加消息处理函数,Classwizard将为你添加消息映射,对于 Windows 消息,生成的消息处理函数重载了基类的虚拟方法。而在C#中如何处理消息...
1.创建项目,完成“课程信息添加及显示”的功能,程序运行如下图所示: 2.创建项目,完成“倒计时”功能,程序运行如下图所示。 3新建项目,完成“添加学生信息”的功能,程序运行如下图所示: 4 创建项目,设计一个...
在Win Form窗体应用中,使用用户控件来手动加载TabControl控件的选项页面的操作方法对应的C#源码的简单例程。
修改如下:条理更清晰 1,添加标识number:是否输入了操作数; 2,标识choose:是否输入了操作符 3,标识opMain:输入了什么操作符; 4, 添加标识cal:是否进行了运算; 5, 操作数1mainNum1:存储...右下角还有C#资料
6.本程序支持Windows Media Player中所有能播放的文件格式。 插件: 必须安装 RealoneED.exe 让windowsMediaPlayer支持RMRMVB文件 WindowsMediaPlayer播放器经过9.0的测试,基本版本未试过。
使用C#编写的Windows应用程序 可以实现基本功能,同时添加工具栏选项 ,扩展了记事本的基本功能
具体内容包括:利用各种控件创建图形用户界面,在Windows应用程序中使用图形和GDI+,在标准Windows文件中加载和保存数据,通过应用程序打印信息,开发能够处理多文档的应用程序,链接数据库,提供帮助,部署应用程序等;...
这是一个采用.net4.0框架开发的Winform程序,可针对Windows系统的服务和IIS网站【应用程序池】进行实时监测,当程序检测到指定的服务或IIS网站【应用程序池】停止以后则自动重启,以此来保证业务系统服务的平稳运行...
C#利用Interop.TaskScheduler.dll添加删除计划任务,可实现程序随Windows系统自动启动; 项目用VS2017打开,需要.net 2.0支持,需要管理员权限;支持win7 win10;不支持xp。
如图所示,在集成开发环境的File菜单中选择New->Project打开新建工程对话框我们选择工程类型为Visual C# Projects,在模板中选择Windows Application,在Name处输入工程名称:HelloWindows,在Location中输入保存的...
C# 记事本(windows应用程序),根据系统附件里面自带的记事本样式做的!