http://www.cnblogs.com/anjou/archive/2008/05/20/1203290.html
使用C#代码安装 Windows 服务(不使用InstallUtil)
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;
}
}
}
}
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;
}
}
}
}