« Service et csharp » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 52 : | Ligne 52 : | ||
# Application tab → Startup object = {{boxx|MyService.Program}} | # Application tab → Startup object = {{boxx|MyService.Program}} | ||
= [https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer#install-the-service | = Install the service = | ||
== [https://docs.microsoft.com/en-us/dotnet/framework/windows-services/how-to-install-and-uninstall-services PowerShell] == | |||
<kode lang='ps'> | |||
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" | |||
</kode> | |||
== [https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer#install-the-service Developer Command Prompt for VS] == | |||
# Open {{boxx|Developer Command Prompt for VS}} with administrative credentials | # Open {{boxx|Developer Command Prompt for VS}} with administrative credentials | ||
<kode lang='dos'> | <kode lang='dos'> | ||
Ligne 63 : | Ligne 76 : | ||
installutil.exe /u MyService.exe | installutil.exe /u MyService.exe | ||
</kode> | </kode> | ||
= [https://docs.microsoft.com/en-us/visualstudio/deployment/deploying-applications-services-and-components?view=vs-2022#create-an-installer-package-windows-desktop Create an installer package] = | |||
# Install the {{boxx|Wix Toolset Visual Studio Extension}} |
Version du 11 février 2022 à 23:06
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); } |
Installer
- 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
Build the service
- Right-click on MyService project → Properties
- Application tab → Startup object = MyService.Program
Install the service
PowerShell
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
- 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 |
Create an installer package
- Install the Wix Toolset Visual Studio Extension