zoukankan      html  css  js  c++  java
  • 使用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;
                }
            }
        }
    }
  • 相关阅读:
    计算机组成原理
    数据结构和算法: 字符串匹配(一) BF/RK
    数据结构和算法: 动态规划-台阶问题
    数据结构和算法: 散列表
    数据结构和算法: 归并排序/快速排序
    数据结构与算法: 冒泡/插入/选择排序
    过渡内容
    Redis 和缓存技术
    2019字节跳动面试时手撕代码题
    Mysql锁机制
  • 原文地址:https://www.cnblogs.com/anjou/p/1203290.html
Copyright © 2011-2022 走看看