title: What is the best way to deploy a VB.NET application?
body: <p>Generally when I use ClickOnce when I build a VB.NET program but it has a few downsides. I've never really used anything else, so I'm not sure
  what my options are.</p>
  
  <p>Downsides to ClickOnce:</p>
  
  <ul>
  <li>Consists of multiple files - Seems easier to distribute one file than manageing a bunch of file and the downloader to download those files.</li>
  <li>You have to build it again for CD installations (for when the end user dosn't have internet)</li>
  <li>Program does not end up in Program Files - It ends up hidden away in some application catch folder, making it much harder to shortcut to.</li>
  </ul>
  
  <p>Pros to ClickOnce:</p>
  
  <ul>
  <li>It works. Magically. And it's built
  into VisualStudio 2008 express.</li>
  <li>Makes it easy to upgrade the
  application.</li>
  </ul>
  
  <p>Does Windows Installer do these things as well? I know it dosen't have any of the ClickOnce cons, but It would be nice to know if it also has the ClickOnce pros.</p>
  
  <p><strong>Update</strong>:
  I ended up using Wix 2 (Wix 3 was available but at the time I did the project, no one had a competent tutorial). It was nice because it supported the three things I (eventually) needed. An optional start-up-with-windows shortcut, a start-up-when-the-installer-is-done option, and three paragraphs of text that my boss thinks will keep uses from clicking the wrong option.</p>