title: Best practice for writing a self-updating windows service
body: <p>We need to create a windows service that has the ability to self update.</p>
  
  <p>Three options spring to mind, </p>
  
  <ol>
  <li><p>a second service that manages the retrieval, uninstallation and installation of the first service.</p></li>
  <li><p>Use of some third party framework (suggestions welcome. I believe .NET supports automatic updating for windows forms apps, but not windows services)</p></li>
  <li><p>Use of a plugin model, whereby the service is merely a shell containing the updating and running logic, and the business logic of the service is contained in a DLL that can be swapped  out.</p></li>
  </ol>
  
  <p>Can anyone shed some light on the solution to this problem?</p>
  
  <p>Thanks</p>