Links
Create the project
- File → New → Project
- Windows Service (.NET Framework)
- Rename Service1.cs to MyService.cs
- 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);
}
|
- Right-click on MyService.cs → View Designer
- Right-click on the background → Add Installer
- A new class ProjectInstaller has been added
- Right-click on ProjectInstaller.cs → View Designer
- Description = This service manages the ...
- DisplayName = My service
- StartType = Automatic
- Select serviceProcessInstaller1 → Properties → Account = LocalSystem
- Right-click on MyService project → Properties
- Application tab → Startup object = MyService.Program
Install the service
|
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"
|
Open Developer Command Prompt for VS with administrative credentials
|
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
|
- Install the Wix Toolset Visual Studio Extension