一、目的:应用VS2017打包功能打包自启动的Windows服务
(安装自启动,重启自启动)
二、创建Window服务
1、添加新建项目Windows服务
2、添加安装程序 (右键Service1)ProjectInstaller
3、修改安装程序ProjectInstaller中serviceInstaller1参数
Description:服务的描述信息(“ActiveMQ消息分发器”)
DisplayName:服务的显示信息(“ActiveMQ消息分发器”)
ServiceName:服务的名称信息(“ActiveMQMessageService”)
StartType:启动方式(“ Automatic ”)
Manual 服务安装后,必须手动启动。
Automatic 每次计算机重新启动时,服务都会自动启动。
Disabled 服务无法启动。
4、修改安装程序ProjectInstaller中serviceProcessInstaller1参数
Account:(“ LocalSystem”)
localSystem:本地系统账户
user:特定账户
5、添加自启动代码
[RunInstaller(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
public ProjectInstaller()
{
InitializeComponent();
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
ServiceController sc = new ServiceController("ActiveMQ消息分发器");
if (sc.Status.Equals(ServiceControllerStatus.Stopped))
{
sc.Start();
}
}
}
三、创建安装程序
1、添加新建项目-其他项目类型-Visual Studio Installer(“ActiveMQMessageServer.Setup”)
2、Application Folder-添加项目输出
3、右键主输出添加ShotCut快捷方式、重命名(“安装ActiveMQ消息转发器服务”)、设置图标
4、添加卸载任务,从系统目录system32 拷贝msiexec.exe 重命名(“卸载ActiveMQ消息转发器服务”)、创建快捷方式、设置图标、设置卸载参数Argument (“/x {FF47EA4C-E365-4382-849B-A99BFFD58974}”)其中参数再安装程序中的ProductCode中查找
5、点击Application Folder设置参数DefaultLocation默认安装目录(“C:\HeBianGu\ActiveMQMessageServer”)
6、其他安装描述参数再ActiveMQMessageServer.Setup中设置
7、设置Windows服务安装自启动:右键-ActiveMQMessageServer.Setup - View - 自定义操作 -Custom Actions右键 - 添加自定义操作
四、安装测试
1、重新生成ActiveMQMessageServer.Setup
2、右键安装
如:服务中存在(“ActiveMQ消息分发器”)服务、并且显示正在运行则测试通过
示例:https://github.com/HeBianGu/MQ-ActiveMQMessageDispatcher.git