Service et csharp

De Banane Atomic
Aller à la navigationAller à la recherche

Links

Create the project

  1. File → New → Project
  2. Windows Service (.NET Framework)
  3. Rename Service1.cs to MyService.cs
  4. Double-click on MyService.cs to open the designer → Properties → ServiceName = MyService

Code

MyService.cs
public partial class MyService : ServiceBase
{
    public MyService()
    {
        InitializeComponent();
    }

    protected override void OnStart(string[] args)
    { }

    protected override void OnStop()
    { }
}
Program.cs
static void Main()
{
    ServiceBase[] ServicesToRun;
    ServicesToRun = new ServiceBase[]
    {
        new MyService()
    };
    ServiceBase.Run(ServicesToRun);
}

Installer

  1. Right-click on MyService.cs → View Designer
  2. Right-click on the background → Add Installer
  3. A new class ProjectInstaller has been added
  4. Right-click on ProjectInstaller.cs → View Designer
  5. Description = This service manages the ...
  6. DisplayName = My service
  7. StartType = Automatic
  8. Select serviceProcessInstaller1 → Properties → Account = LocalSystem

Build the service

  1. Right-click on MyService project → Properties
  2. Application tab → Startup object = MyService.Program

Install the service

PowerShell

Ps.svg
New-Service -Name "MyService" -BinaryPathName MyService.exe

# uninstall, PowerShell 6 or later is required
Remove-Service -Name "MyService"

# after the executable for a service is deleted, the service might still be present in the registry
# remove the entry for the service from the registry
sc.exe delete "MyService"

Developer Command Prompt for VS

  1. Open Developer Command Prompt for VS with administrative credentials
Dos.svg
cd %UserProfile%\source\repos\MyService\MyService\bin\Debug

installutil MyService.exe
REM %windir%\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe

REM uninstall the service
installutil.exe /u MyService.exe

Create an installer package

  1. Install the Wix Toolset Visual Studio Extension