制作Windows服务安装包

LDA主题模型简介及Python实现 一、LDA主题模型简介 LDA主题模型主要用于推测文档的主题分布,可以将文档集中每篇文档的主题以概率分布的形式给出根据主题进行主题聚类或文本分类。 LDA主题模型不关心文档中单词的顺序,通常使用词袋特征(bag-of-word feature)来代表文档。词袋模型介绍可以参考这篇文章:文本向量化表示——词袋模型 - 知乎 了解LDA模型,我们需要先了解LDA的生成模型,LDA认为一篇文章是怎么形成的呢? LDA模型认为主题可以由一个词汇... 阅读详情

原文:http://www.cnblogs.com/greatandforever/archive/2008/10/14/1310504.html

可能是太过于懒惰的原因,研究个windows 服务的安装程序都花了大半天时间。在网上看了一些示例,大部分都言过其实,把过程搞得太过复杂,老是需要去研究如何利用InstallUtil.exe及其参数。事实上,既然要安装.net下制作的windows服务,肯定首先得在目标机器上安装有.net框架。因此,InstallUtil.exe也一定已经存在目标机器上了,因而利用微软的傻瓜式操作就能很好地解决windows服务安装和卸载的问题。

过一段时间估计还要狠狠地利用windows服务来完成一些功能,为了加深印象,又回过头弄了一个名叫HelloWorldService的windows服务,用最简单的demo来完成所有的操作。这个服务的功能,仅仅是在它启动的时候创建一个HelloWorld.txt文件,里边写上Hello World!这几个简单的字母而已。

1、选择Visual C#->Windows->Windows 服务,创建一个HelloWorldService项目。

 

2、通过ServiceName更改服务的名称为”HelloWorldService“,这是最后在安装服务成功后在服务管理面板出现的名称。


 

3、将Service1.cs更名为HelloWorldService.cs,在其OnStart方法中写入简单的代码,用来实现创建文件并写入“Hello World!"这几个经典字母。

 

4、在HelloWorldService.cs的设计界面点右键,在弹出菜单中选择”添加安装程序“。

点击后出来的设计界面上添加了两个控件——ServiceProcessInstall和ServiceInstaller。

ServiceProcessInstall安装一个可执行文件,该文件包含扩展 ServiceBase 的类。该类由安装实用工具(如 InstallUtil.exe)在安装服务应用程序时调用。在这里主要是修改其Account属性。ServiceAccount指定服务的安全上下文,安全上下文定义其登录类型。

LocalService    充当本地计算机上非特权用户的帐户,该帐户将匿名凭据提供给所有远程服务器。
LocalSystem    服务控制管理员使用的帐户,它具有本地计算机上的许多权限并作为网络上的计算机。
NetworkService    提供广泛的本地特权的帐户,该帐户将计算机的凭据提供给所有远程服务器。
User    由网络上特定的用户定义的帐户。如果为 ServiceProcessInstaller.Account 成员指定 User,则会使系统在安装服务时提示输入有效的用户名和密码,除非您为 ServiceProcessInstaller 实例的 Username 和 Password 这两个属性设置值。

ServiceInstaller安装一个类,该类扩展 ServiceBase 来实现服务。在安装服务应用程序时由安装实用工具调用该类。在这里主要修改其StartType属性。此值指定了服务的启动模式。
  
Automatic 指示服务在系统启动时将由(或已由)操作系统启动。如果某个自动启动的服务依赖于某个手动启动的服务,则手动启动的服务也会在系统启动时自动启动。
Disabled 指示禁用该服务,以便它无法由用户或应用程序启动。
Manual 指示服务只由用户(使用“服务控制管理器”)或应用程序手动启动。

5、上面这些都是安装包最终要安装/卸载的对象。下面就来看看如何用.net制作安装包。
需要在解决方案里边添加一个安装项目,取其名称为HelloWorldSetup。

6、添加工程后,在默认的视图界面右键点击”应用程序文件夹“,选择”添加“->”项目输出“。
在弹出的窗口中选择”主输出“,点击”确定“。

7、上面的步骤定义了最后在应用程序文件夹中包含的内容。下面来定义其他方面的内容。在项目上点右键,选择 视图->自定义操作。
 
8、出来如下的界面,然后在”自定义操作“上点右键,选择”添加自定义操作“。
 

在弹出的窗口中双击”应用程序文件夹“。

然后选择”主输出来自HelloWorldService(活动)“,点击”确定“。

选择之后会发现所有的操作下边都添加了刚才选定的项。做到这一步,就能使安装程序卸载时不仅把程序卸载下来,也能把服务卸载下来。

9、接下来在安装项目上点右键,选择”生成“,就能使安装程序正常发布了,成功后会生成两个文件。

把这两个文件拷到目标机器上,双击HelloWorldSetup.msi文件,就可以开始安装服务的征途了。


安装成功后,就可以从服务管理面板中欣喜地看到我们梦寐以求的服务程序了。

不过在我点启动的时候,还出现了一段小插曲——系统报错了。错误如下图:

 

不过不用急,这种错误可以在系统的”事件查看器“中的”应用程序“选项中查看具体的错误信息。

呵呵,原来是由于服务对于文件系统的操作权限问题所引起的。跑回去一看,发现在第5步中对ServiceProcessInstaller的Account设置成了LocalService,于是乎改成了LocalSystem。然后重新发布安装程序,再重新安装服务,再启动,呵呵,一切正常!

10、最后,一起来欣赏这个windows 服务的成果:

 


PostgreSQL的学习心得和知识总结(八十二)|深入理解PostgreSQL数据库SQL语句的词法解析和语法解析流程 postgresql 词法解析语法解析流程 阅读详情

相关推荐

CCS安装教程图解说明:可视化步骤快速上手

通过清晰的图解步骤详解CCS安装过程,帮助新手快速掌握环境搭建。结合ccs安装教程与实际操作界面,每一步都直观易懂,大幅降低学习门槛,提升配置效率。

weixin_42611310的博客 960

十步完成windows服务的安装

可能是太过于懒惰的原因,研究个windows 服务的安装程序都花了大半天时间。在网上看了一些示例,大部分都言过其实,把过程搞得太过复杂,老是需要去研究如何利用InstallUtil.exe及其参数。事实上,既然要安装.net下制作的windows服务,肯定首先得在目标机器上安装有.net框架。因此,InstallUtil.exe也一定已经存在目标机器上了,因而利用微软的傻瓜式操作就能很好地解决wi...

weixin_30782331的博客 371

FFmpeg流媒体开发避坑指南:avformat_open_input超时设置的那些坑

本文深入剖析了FFmpeg流媒体开发中avformat_open_input函数的超时设置难题。针对默认阻塞行为、无效的timeout参数以及不稳定的线程取消方案等常见误区,文章详细解读了官方推荐的interrupt_callback机制,并提供了健壮的超时控制器实现方案与最佳实践,帮助开发者构建稳定可靠的流媒体应用。

weixin_29239279的博客 237

【C#】Windows服务(Service)安装及启停

今天,我们完成了一个应用程序的开发,我们要将其设置成开机自启程序,继上篇文章介绍有两种方式。一种,开机启动目录下创建应有程序的快捷方式;另一种,写Windows服务;我们现在采用“服务方式自启程序”。因为用户不具备管理员权限,为了安全考虑,我们方便监控管理。最终确认方案二。先说说我们面临的问题,或者说是待解决的问题:①安装服务,通过咱新开发的C#应用软件安装,不希望借助第三方工具(installutil.exe),因为面向人群非科班出身,操作越简单越好。

花北城的博客 1万+

SAE J1850协议:从波形解析到汽车诊断实战

本文深入解析SAE J1850协议在汽车诊断中的应用,重点对比其PWM和VPW两种实现方式的波形特征、帧结构及诊断要点。通过实测案例,详细介绍了如何通过波形分析精准定位通用和福特等美系车型的通信故障,提升汽车电子诊断实战能力。

hill8的博客 965

Rk3128投影仪救砖操作和固件分享思路

大家搞一条比较硬的东西,插入耳机口,就可以进入刷机模式了的,我的机器是这样的,大家也可以试试。(看不懂可以往下看)

MMX7088的博客 1万+

Window安装服务

1、win+r执行cmd admin run 或者直接win10搜索cmd然后点击以管理员的身份运行; 2、cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319(64位操作系统);不是64位则执行cd C:\Windows\Microsoft.NET\Framework\v4.0.30319; 3、installUtil.exe D:\Service.exe 注:中间有空格,后面的路径是你服务运行的exe的文件路径; 4、卸载服务——installUti

weixin_42987513的博客 1504

sid图像数据_遥感影像数据

影像数据基本概念影像数据是由卫星或飞机上的成像系统获得的影像,多为遥感影像数据。影像数据的每个像元都有一个值,表示传感器探测到像素对应地面面积上目标物的电磁辐射强度,也叫亮度值、灰度值。SuperMap支持的影像数据格式有:*.img、*.tif、*.tiff、*.bmp、*.jpg、*.png、*.gif、*.raw、*.sid等。计算机以二进制记录数据,所以其量化的等级以二进制来划分,即2n。...

weixin_39534395的博客 1626

安装Windows服务几种方法

安装Winfows服务首先要添加安装程序,添加安装程序步骤如下: 1、将Windows服务程序切换到设计视图, 右击设计视图选择“添加安装程序” 2、切换到刚被添加的ProjectInstaller的设计视图 一般设置如下:  设置serviceInstaller1组件的属性:     1) ServiceName = 服务名称     2) StartType

欲穷千里目,更上一层楼 8万+

银河麒麟v10-arm版离线安装Portainer

银河麒麟v10-arm版离线安装Portainer

q_hsolucky的博客 3050

Matlab之机载雷达系统中的空时自适应处理(STAP)技术(附源码)

在第一个脉冲期间,天线 1 通过天线 N-1 接收的杂波返回与第二个脉冲期间天线 2 通过天线 N 接收的杂波返回相同。该算法可能需要搜索角度和多普勒的所有组合来定位目标,但对于示例,由于确切知道目标的位置,因此可以将处理器定向到该点。然而,接收到的信号不仅包含来自目标的反射回波,还包含来自被照亮地表的回波。然而,由于干扰器的白噪声性质,接收到的干扰信号占据了整个多普勒频段。在以下部分中,您将模拟来自目标、杂波和干扰器的返回,并说明 STAP 技术如何过滤来自接收信号的干扰。假设元件间距是波形波长的一半。

珞瑜的博客 7134

安装Windows服务

安装Windows服务   Windows服务不同于普通Windows应用程序。不可能简简单单地通过运行一个EXE就启动Windows服务了。安装一个Windows服务应该通过使用.NET Framework提供的InstallUtil.exe来完成,或者通过诸如一个Microsoft Installer (MSI)这样的文件部署项目完成。 添加服务安装程序   创建一个Wind

山鹰的专栏 659

MOS管的体二极管在LLC中的作用

MOSFET是一个三端器件(G、D、S),在N沟道MOSFET的结构中,源极和漏极之间的N型材料中自然形成了一个寄生的PN结,这个PN结就是体二极管(Body Diode),它是不可避免的器件结构。📌 对于N沟MOSFET:体二极管是从漏极 D 到源极 S 的正向导通二极管,方向为 D → S。MOS管的体二极管在LLC中并不是主功率通道,但却是实现软开关(ZVS)和能量过渡的关键“临时路径”。用得好,它是你的朋友;忽略它,电路就可能烧毁。

weixin_43199439的博客 699

如何制作windows服务的安装包

如何制作windows服务的安装包 MSDN上讲得很清楚 在MSDN的索引中输: Windows Service applications, walkthrough 有详细的过程。 ----------第一种方法----------------------------------------------------- 部署windows服务 (1)、建立一个新的wi...

Q13945107811的博客 260

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C#创建windows服务程序,并制作windows服务安装包。

首先创建一个windows服务,然后添加安装程序。点击右键,选择添加安装程序。设置服务的属性值:选择serviceInstaller1,将ServiceName值改成与自己的项目名称相同的值。将StartType(启动方式)改为Automatic(开机自启)。如果DispalyName没有设置,那么默认为ServiceName。选择serviceProcessInstaller1,将属性值中的Account值改为LocalSystem。编写代码,生成项目,然后制作安装包。

tjuyyb的专栏 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Windows服务安装包制作

可能是太过于懒惰的原因,研究个windows 服务的安装程序都花了大半天时间。在网上看了一些示例,大部分都言过其实,把过程搞得太过复杂,老是需要去研究如何利用InstallUtil.exe及其参数。事实上,既然要安装.net下制作的windows服务,肯定首先得在目标机器上安装有.net框架。因此,InstallUtil.exe也一定已经存在目标机器上了,因而利用微软的傻瓜式操作就能很好地解决wi

2364

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# 制作Windows服务安装包

这两天公司要用C#写一个windows服务,做成安装安装包。制作的过程中遇到了一些问题,写完之后总结一下。如果以后在用到的话可以可以参考一下,而且由于原来没有做过,不知道这样做是对是不对,请各位看官如果发现有不当之处请指教。 开始的时候我的开发工具VS 2012,需要用InstallShield,没闹明白,时间紧迫没有搞,改用vs2010。 首先创建一个w...

weixin_30596343的博客 100

windows中使用installShield制作windows服务的安装包

首先弄明白本文究竟说的是什么. 1.      是讲windows服务怎样编写吗?不是 2.      是讲在visual studio里怎样制作安装包吗?算是,但也不全是。 3.      是讲windows服务写好后怎样将此服务安装到windows系统中吗?不是 4.      讲的是“在windows中怎样使用installShield制作windows服务的安装包”,也就是说 4

festone000的专栏 7730

如何制作windows服务的安装包部署windows服务

如何制作windows服务的安装包部署windows服务

系分之旅 3116

C# 制作Windows服务安装包

这两天公司要用C#写一个windows服务,做成安装安装包。制作的过程中遇到了一些问题,写完之后总结一下。如果以后在用到的话可以可以参考一下,而且由于原来没有做过,不知道这样做是对是不对,请各位看官如果发现有不当之处请指教。 开始的时候我的开发工具VS 2012,需要用InstallShield,没闹明白,时间紧迫没有搞,改用vs2010。 ...

weixin_33716154的博客 169

c# 编写windows 服务,并制作安装包

  对服务的认识有很多个阶段。   第一阶段:当时还在用c++,知道在一个进程里while(True){},然后里面做很多很多事情,这就叫做服务了,界面可能当时还用Console控制台程序。   第二阶段:知道了服务要在后台执行,一般不会有界面显示,并且开机自启动,于是隐藏Console控制台界面,并且通过使用SC CREATE 将exe变为服务,并且达到开机自启动的目的。这时候还是c+...

weixin_30315905的博客 338

VC制作 Windows服务 安装包

C++跟.NET 不同,没有线程的安装程序类用来继承和操作 所以,一些自定义的东西,之好采用VBS脚本的方式来进行 以下转载: http://hi.baidu.com/feng_hit/item/6eed6885bac20728110ef339 Vc2005软件的安装部署过程--制作步骤 1、在 Microsoft Visual Studio .NET 的“文件”菜单上,单击“新建...

weixin_30679823的博客 126

用VS制作的windows服务安装包 安装完后如何让服务自动启动

vs 服务做成安装包,如何安装以后启动服务,只要在类名为projectinstaller类的中重写commit事件即可         public override void Commit(IDictionary savedState)         {             base.Commit(savedState);             ServiceController s...

LongtengGensSupreme博客 656
上一篇: SqlCommandBuilder批量更新数据
下一篇: 制作windows 服务安装包相关内容
dyzcode
博客等级 码龄17年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值