Google PlusFacebook iconTwitter icon+44 113 260 4010 contact@branded3.com

C# Windows Services – Creating an MSI Installer

I’ve been working on a Windows Service for one of our projects recently and came to what I’m sure others have encountered and that is creating the installer without the need for command prompt.

I’ve been using Visual Studio 2008 to develop the project and as you may or may not know you need to install a windows service in order to test it, you cannot debug and test direct from VS. Microsoft have nicely packaged InstallUtil.exe which can be used from the VS command prompt to install your service and get it up and running.

Now, InstallUtil is fine whilst you are in the early stages of development, but when you get closer to deployment there are a few things that need to be considered:

  1. Dependancies
  2. Distribution

You can package most of the dependancies together with your solution (the .net framework is usually set to download rather than compile within) but you dont really want to have your end users runnng command prompts to get your service up and running, therefore you need to think about the distribution, that’s where an MSI installer comes in.

An MSI can be added to a project by using the VS project template and selecting “Setup and Deployment”. Once added there are a few things that need to be done to get you installing:

  1. Right click your installer and select “Project Output” – select your service and make sure it is set to primary output.
  2. The point which was had me hunting the internet for hours was right click and select “View Custom Actions” from the window that opens right click the root node and select “Add Custom Action” select application folder and then select your service. This will ensure that when your service is installed it is registered in the Services MMC.

And that’s it! Hopefully I havent missed anything but let me know it I have.

BY Steven Shaw AT 12:05pm ON Wednesday, 30 March 2011

One of the first students to ever graduate from a Cybernetics and Virtual Systems course; Steve has transferred his winning enthusiasm to Branded3, becoming our Head of Digital two years ago. Progressing with the evolving digital environment, Steve is a skilled expert in Microsoft development ASP, .Net, and PHP Open Source; always aspiring to build upon his expanse of knowledge.

Comments

Comments are closed.