C# Windows服务添加安装程序

来源:互联网 发布:proxmox ve 网络配置 编辑:程序博客网 时间:2024/05/18 10:12

[图]为C# Windows服务添加安装程序

最近一直在搞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服务了。(如图15)

(图15)

接下来就该让Windows服务和安装项目同时被编译了。右键点击解决方案,选择“属性”(如图16),在出来的对话框中,勾上安装项目后面的生成。(如图17)

(图16)


(图17)

最后,右键解决方案,选择“生成解决方案”,这时vs会将两个项目都会编译出来。不过要注意一点:项目的启动顺序一定要Windows服务项目在前,安装项目在后。



 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 铁盖玻璃瓶打不开怎么办 玻璃瓶塑料盖打不开怎么办 玻璃杯拧不开了怎么办 不锈钢瓶盖打不开怎么办 密封玻璃罐打不开怎么办 玻璃密封盒打不开怎么办 密封瓶打不开怎么办 瓶盖拧太紧打不开怎么办 玻璃瓶盖拧不紧怎么办 电饭煲盖子打不开怎么办 瓶盖太紧开不开怎么办 颜料拧不开怎么办 瓶盖一直转不开怎么办 水粉颜料拧不开怎么办 塑料盖子扭不开怎么办 水瓶盖太紧打不开怎么办 压盖子拧不开怎么办 公章盖子拧不开怎么办 塑料瓶打不开了怎么办 瓶盖转不开怎么办 化妆品瓶盖太紧拧不开怎么办 塑料杯拧不开了怎么办 玻璃瓶盖子拧不开怎么办 塑料水杯拧不开怎么办 玻璃瓶没盖子怎么办 罐装榨菜打不开怎么办 睫毛胶水拧不开怎么办 硅胶盖子打不开怎么办 胶水打不开了怎么办 胶水瓶扭不开怎么办 胶水盖打不开怎么办 睫毛胶打不开怎么办 水杯盖拧不紧怎么办 水杯拧不紧漏水怎么办 蜂蜜瓶子打不开怎么办 胶水瓶口堵住怎么办? 瓶子有气打不开怎么办 罐子瓶盖拧不开怎么办 泡菜瓶子打不开怎么办 玻璃罐盖子打不开怎么办 饮料瓶子打不开怎么办