使用C#代码安装 Windows 服务(不使用InstallUtil)

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;
            }
        }
    }
}

 

转载于:https://www.cnblogs.com/Ken-Cai/archive/2011/03/11/1981709.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值