C# – ClickOnce deploy a Windows Service

cclickoncevisual-studio-2008windows-services

Is it possible to deploy a Windows Service using ClickOnce? If so, how do you achieve this?

Currently we have to use a Deployment project, and the installation process could be simplified greatly by using ClickOnce.

Best Answer

AFAIK you can't really use ClickOnce end-to-end to deploy a service; there are issues with both the file locations (ClickOnce installs into a user's profile) and installation (ClickOnce is largely side-effect free).

You can, however, write a service as an exe that can self-install/uninstall from the services list, like so; basically, you write it as as a console exe and handle some command line args, using AssemblyInstaller to [un]install from the current assembly. Another advantage is that the same approach can be used to help debugging, since you can run it from the command line.