台式电脑

电脑怎么样无限注册(VS打包windows服务并实现自动注册与开启)

前提

已经创建并编写好了windows服务程序,且下载了MicrosoftVisualStudioInstallerProject插件。

创建windows服务程序的参考链接:https://blog.csdn.net/xiketangAndy/article/details/126851864

电脑怎么样无限注册(VS打包windows服务并实现自动注册与开启)

打包步骤1.创建打包项目

右键windows服务项目所在的解决方案,搜索setup并创建SetupProject项目。

VS打包windows服务并实现自动注册与开启

VS打包windows服务并实现自动注册与开启

2.添加应用程序所需文件

右键ApplicationFolder,选择Add->项目输出。选择主输出为编写好的windows服务程序(vs会自动将程序依赖的dll文件一起放进去),配置选ReleaseAnyCpu。

VS打包windows服务并实现自动注册与开启

VS打包windows服务并实现自动注册与开启

继续向ApplicationFolder添加下述文件(右键选择Add->文件)。

InstallUtil.exe,该文件用于将程序注册为windows服务。一般位于计算机的C:\Windows\Microsoft.NET\Framework64\v4.0.30319路径下(前提是有.net环境)。StartService.vbs,自己写的脚本,内容如下:

dimobjremrun方法有三个参数,分别表示命令/脚本路径、cmd窗口运行模式、是否等待该命令执行结束后再继续执行setobj=CreateObject("Wscript.Shell")rem注册windows服务,0表示后台无窗口运行(即安装时不弹出黑框框)remobj.Run"InstallUtil.exeMyWindowsService.exe",0,Truerem启动windows服务obj.Run"netstartGetMacByHttpService",0

注:将运行InstallUtil.exe的命令放在脚本中执行时会有问题(解决方案在下面),最后生成的安装包在安装时会报错,原因应该是安装未完成时InstallUtil.exe找不到当前路径。

3.添加自定义操作

右键新建的打包项目,选择view->自定义操作。在CustomActions界面下右键Install,添加自定义操作。

VS打包windows服务并实现自动注册与开启

VS打包windows服务并实现自动注册与开启

选中第2步中向ApplicationFolder中添加的所有文件,点击OK确认。

VS打包windows服务并实现自动注册与开启

VS打包windows服务并实现自动注册与开启

右键添加进来的InstallUtil.exe,选择属性。修改Arguments的内容为:“MyWindowsService.exe”,注意前面有个空格。MyWindowsService.exe是自己编写的windows服务程序名。

VS打包windows服务并实现自动注册与开启

VS打包windows服务并实现自动注册与开启

后续也可以在Uninstall中添加卸载时执行的动作,过程类似。移除windows服务的命令为:

rem移除MyWindowsService服务InstallUtil.exe-uMyWindowsService.exe4.打包生成

先生成已编写好的windows服务程序,后右键Setup项目,点击生成。最后可以得到一个exe文件和msi文件,经测试,exe文件可以删除且不影响安装,仅保留msi文件即可。

踩过的坑如果不小心关闭了FileSystem或CustomAction设计窗口,在右上角解决方案管理器下面点击对应图标可以打开,鼠标悬浮在这些图标上可以看到提示。在编写windows服务时如果不小心关闭了设计窗口,双击解决方案下的.cs后缀文件即可打开(有时候不好使,重启vs)。

相关新闻

返回顶部