It's actually really simple as I just did it a couple of days ago for something I made.
So in your service project you want to:
- In the solution explorer double click your services .cs file. It should bring up a screen that is all gray and talks about dragging stuff from the toolbox.
- Then right click on the gray area and select add installer. This will add an installer project file to your project.
- Then you will have 2 components on the design view of the ProjectInstaller.cs (serviceProcessInstaller1 and serviceInstaller1). You should then setup the properties as you need.
Now you need to make a setup project. The best thing to do is use the setup wizard.
- Right click on your solution and add a new project: Add > New Project > Setup and Deployment Projects > Setup Wizard
- On the second step select "Create a Setup for a Windows Application."
- On the 3rd step, select "Primary output from..."
- Click through to Finish.
Now you need to edit your installer to make sure the correct output is included.
- Right click on the setup project in your Solution Explorer.
- Select View > Editor > Custom Actions.
- Right-click on the Install action in the Custom Actions tree and select 'Add Custom Action...'
- In the "Select Item in Project" dialog, select Application Folder and click OK.
- Click OK to select "Primary output from..." option. A new node should be created.
- Repeat steps 4 - 5 for commit, rollback and uninstall actions.
Now just build your installer and it will produce an MSI and a setup.exe. Choose whichever you want to use to deploy your service.