Click here to Skip to main content
Click here to Skip to main content

Using Installutil to install a Windows Service and passing it parameters for the service

By , 29 Apr 2008
 

Introduction

There are many complaints about the InstallUtil that is used to install Windows Services that are built using .NET. Albeit the utility is not great, the most common complaint is that it can't pass paramters to the installer class that developers are forced to include in there service. This very simple sample shows that you can indeed pass paramters from the InstallUtil command line and access them from your installer class.

Background

Windows services written in the .NET languages are encouraged to use the Installer class to register the service with the SCM (Service Control Manager). Then once the service is complete, a command line utility called InstallUtil is used to 'register' the new service with Windows. The InstallUtil looks in your .NET assembly for a class derived from System.Configuration.Install.Installer and executes it to perform the 'registration' (confusingly called installation). There are lots of questions on the 'net asking how to pass parameters from the command line of InstallUtil to this embedded Installer class so that the service can be registered with a specific account, service name, display name, ect. This sample will hopefully show how to do that.

Using the code

The service part of the sample does absolutely nothing as the code focuses on the embedded installer class. If you want a sample of how to code a Windows Service, there are thousands on this site and other site on the 'net. The quick part of the solution is the Context property of the Installer class. This property is a Dictionary collection, with every parameter of the command line given to Installutil in it. They are already broken out into Key and Value pairs, and it is just a matter of iterating the collection and using the keys and values as you need them.

Points of Interest

The one thing I wished I could do is default the logtoconsole parameter to false. The default is true and with it on the output on the console is quite verbose and confusing.

History

First posted April 29th, 2008

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

jostros1
Software Developer (Senior) Allstream ITS
Canada Canada
Member
Senior software architect and developer for 18 years. Worked primarily with microsoft products, using them to integrate many 3rd party systems from numerous vendors into cohesive systems.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
Questionsample code needed for the Installing Windows service with startup parameters using InstallUtilmemberMember 49165220 Jul '11 - 7:19 
I think most complaints are that they can not pass the parameters needed for the starting the Widnows service for the auto start type. Not just the regular parameters needed for install the service. If you can provide an example of that, it will be very helpful.
 
Thanks!
GeneralBettermemberPIEBALDconsult29 Apr '08 - 13:21 
Have you read this[^] article?

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web01 | 2.6.130523.1 | Last Updated 29 Apr 2008
Article Copyright 2008 by jostros1
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid