title: How application can update itself?
body: <p>As a Notepad++ fan, I have seen that when there is a new update available, the following happens:</p>
  
  <ul>
  <li>Notepad++ <em>tells</em> you that there is an update</li>
  <li>When you click "Okay, let's update", it connects to the server</li>
  <li>it downloads the update file</li>
  <li>Notepad++ is closed and update file starts to run</li>
  <li>UAC asks you if you want to run the file</li>
  <li>When yes, it installs the update</li>
  <li>You are asked to re-run Notepad++</li>
  </ul>
  
  <p>I want to build this functionality in my .NET desktop application. What I don't know is after the file is downloaded:</p>
  
  <ul>
  <li>how will my application tell the OS to run the update file?</li>
  <li>my application does not have permissions to install files on the computer. How will it bypass that?</li>
  <li>how will my application gets closed because during the update process, current application needs to be changed?</li>
  </ul>