zoukankan      html  css  js  c++  java
  • C# WindowsService安装与卸载

    最近在做WinService,总结了一下安装和卸载程序,服务实现内容无法总结了。

    安装程序:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Diagnostics;
     6 
     7 namespace InstallWin
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             if (args.Length > 0)
    14             {
    15                 if (args[0] == "start")
    16                 {
    17                     System.Threading.Thread.Sleep(10000);
    18                     System.Diagnostics.Process.Start("sc start TalentMonitorService");
    19                 }
    20             }
    21             else
    22             {
    23                 string DotnetPath = System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory();
    24                 string installUtil = DotnetPath + "InstallUtil.exe";
    25                 ProcessStartInfo info = new ProcessStartInfo();
    26                 info.CreateNoWindow = true;
    27                 info.WindowStyle = ProcessWindowStyle.Hidden;
    28                 info.FileName = installUtil;
    29                 info.Arguments = """ + AppDomain.CurrentDomain.BaseDirectory + "WindowsServiceTest.exe"";
    30                 Process pro = Process.Start(info);
    31                 Console.WriteLine("正在安装监控服务...");
    32                 pro.WaitForExit();
    33 
    34                 info.FileName = "net.exe";
    35                 info.Arguments = "start WindowsServiceTest";
    36                 pro = Process.Start(info);
    37                 Console.WriteLine("正在启动监控服务...");
    38                 pro.WaitForExit();
    39             }
    40         }
    41     }
    42 }

    卸载程序:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Diagnostics;
     6 
     7 namespace UnInstall
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             string DotnetPath = System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory();
    14             string installUtil = DotnetPath + "InstallUtil.exe";
    15             ProcessStartInfo info = new ProcessStartInfo();
    16             info.CreateNoWindow = true;
    17             info.WindowStyle = ProcessWindowStyle.Hidden;
    18             info.FileName = "net.exe";
    19             info.Arguments = "stop WindowsServiceTest";
    20             Process pro = Process.Start(info);
    21             Console.WriteLine("正在停止监控服务...");
    22             pro.WaitForExit();
    23 
    24             info.FileName = installUtil;
    25             info.Arguments = "/u "" + AppDomain.CurrentDomain.BaseDirectory + "\WindowsServiceTest.exe"";
    26             pro = Process.Start(info);
    27             Console.Write("正在卸载监控服务...");
    28             pro.WaitForExit();
    29         }
    30     }
    31 }

    简单的服务:

     1 using System;
     2 using System.Collections;
     3 using System.Collections.Generic;
     4 using System.ComponentModel;
     5 using System.Configuration.Install;
     6 using System.Linq;
     7 
     8 
     9 namespace WindowsServiceTest
    10 {
    11     [RunInstaller(true)]
    12     public partial class ProjectInstaller : System.Configuration.Install.Installer
    13     {
    14         public ProjectInstaller()
    15         {
    16             InitializeComponent();
    17         }
    18     }
    19 }
     1 serviceInstaller1.Description:测试服务
     2 
     3 serviceInstaller1.DisPlayName:测试服务
     4 
     5 serviceInstaller1.Parent:ProjectInstaller
     6 
     7 serviceInstaller1.ServiceName:WindowsServiceTest
     8 
     9 
    10 serviceProcessInstaller1.Account:LocalService
    11 serviceProcessInstaller1.Parent:ProjectInstaller
  • 相关阅读:
    eclipse pom文件报错 org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.Mav (Click for 1 more)
    严重: Compilation error org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
    powercfg -duplicatescheme 设置电源方案
    测试3
    测试2
    markdonwn 测试1
    Java线程池-线程工厂ThreadFactory
    Java线程池-拒绝策略
    一文读懂Base64编码
    ThreadLocal
  • 原文地址:https://www.cnblogs.com/pyffcwj/p/3772914.html
Copyright © 2011-2022 走看看