I’m trying to deploy a windows service but not quite sure how to do it right. I built it as a console app to start with, I’ve now turned it into a windows service project and just call my class from the OnStart method in the service.
I now need to install this on a server which doesn’t have Visual Studio on it, which if I’ve understood it correctly means I can’t use the InstallUtil.exe and have to create an installer class instead. Is this correct?
I did have a look at a previous question, Install a .NET windows service without InstallUtil.exe, but I just want to make sure I’ve understood it correctly.
If I create the class that question’s accepted answer links to, what is the next step? Upload MyService.exe and MyService.exe.config to the server, double click the exe file and Bob’s my uncle?
The service will only ever be installed on one server.
The
InstallUtil.exetool is simply a wrapper around some reflection calls against the installer component(s) in your service. As such, it really doesn’t do much but exercise the functionality these installer components provide. Marc Gravell’s solution simply provides a means to do this from the command line so that you no longer have to rely on havingInstallUtil.exeon the target machine.Here’s my step-by-step that based on Marc Gravell’s solution.
How to make a .NET Windows Service start right after the installation?