使用C#代码安装 Windows 服务--直接运行安装服务
2009-12-09 20:07
996 查看
文章出处:http://tech.sina.com.cn/s/2009-07-31/20101008911.shtml
让编译好的EXE可以直接运行安装服务,而不是通过.net命令行来安装。
using System;
using System.Collections.Generic;
using System.ServiceProcess;
using System.Configuration.Install;
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
// 运行服务
if (args.Length == 0)
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new MyService1() };
ServiceBase.Run(ServicesToRun);
}
// 安装服务
else if (args[0].ToLower() == "/i" || args[0].ToLower() == "-i")
{
try
{
string[] cmdline = { };
string serviceFileName = System.Reflection.Assembly.GetExecutingAssembly().Location;
TransactedInstaller transactedInstaller = new TransactedInstaller();
AssemblyInstaller assemblyInstaller = new AssemblyInstaller(serviceFileName, cmdline);
transactedInstaller.Installers.Add(assemblyInstaller);
transactedInstaller.Install(new System.Collections.Hashtable());
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
// 删除服务
else if (args[0].ToLower() == "/u" || args[0].ToLower() == "-u")
{
try
{
string[] cmdline = { };
string serviceFileName = System.Reflection.Assembly.GetExecutingAssembly().Location;
TransactedInstaller transactedInstaller = new TransactedInstaller();
AssemblyInstaller assemblyInstaller = new AssemblyInstaller(serviceFileName, cmdline);
transactedInstaller.Installers.Add(assemblyInstaller);
transactedInstaller.Uninstall(null);
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
}
}
让编译好的EXE可以直接运行安装服务,而不是通过.net命令行来安装。
using System;
using System.Collections.Generic;
using System.ServiceProcess;
using System.Configuration.Install;
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
// 运行服务
if (args.Length == 0)
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new MyService1() };
ServiceBase.Run(ServicesToRun);
}
// 安装服务
else if (args[0].ToLower() == "/i" || args[0].ToLower() == "-i")
{
try
{
string[] cmdline = { };
string serviceFileName = System.Reflection.Assembly.GetExecutingAssembly().Location;
TransactedInstaller transactedInstaller = new TransactedInstaller();
AssemblyInstaller assemblyInstaller = new AssemblyInstaller(serviceFileName, cmdline);
transactedInstaller.Installers.Add(assemblyInstaller);
transactedInstaller.Install(new System.Collections.Hashtable());
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
// 删除服务
else if (args[0].ToLower() == "/u" || args[0].ToLower() == "-u")
{
try
{
string[] cmdline = { };
string serviceFileName = System.Reflection.Assembly.GetExecutingAssembly().Location;
TransactedInstaller transactedInstaller = new TransactedInstaller();
AssemblyInstaller assemblyInstaller = new AssemblyInstaller(serviceFileName, cmdline);
transactedInstaller.Installers.Add(assemblyInstaller);
transactedInstaller.Uninstall(null);
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
}
}
相关文章推荐
- 转:使用C#代码安装 Windows 服务(不使用InstallUtil)
- 使用C#代码安装 Windows 服务(不使用InstallUtil) (转帖)
- 利用PHP安装windows自动运行的服务,PHP程序可以实现长时间、自动运行、定时更新功能,直接可以用在项目中的类源代码
- 使用C#代码安装 Windows 服务(不使用InstallUtil)
- 使用C#代码安装 Windows 服务
- 使用C#代码安装 Windows 服务(不使用InstallUtil)
- 使用C#代码安装 Windows 服务(不使用InstallUtil)
- C# 自动运行代码 (创建windows 服务的形式 )
- c# 在windows服务中 使用定时器实例代码
- C#代码获得windows服务的安装目录
- C#代码安装、卸载、监控Windows服务
- 使用C#代码安装、启动、停止、卸载Windows service(不使用InstallUtil.exe)
- C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)
- C# Windows 服务安装并运行服务
- C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)(从iteye搬到博客园)
- C#Windows 服务制作安装删除. 用户注销后,程序继续运行
- Windows服务代码实现安装、卸载、运行、停止
- 使用Python编写免安装运行时、以Windows后台服务形式运行的WEB服务器
- C# 自动运行代码 (创建windows 服务的形式 )
- C#使用Mutex实现系统范围内单实例运行的示例代码