title: Setup project with custom form
body: <p>I’m currently working on a Visual Studio 2010 setup Project and would like to know if the following is possible:</p>
  
  <p>1)  Run the setup project in a way that the default forms don’t show, instead I’d show my own custom form that subscribes to setup project events. This way I'd show install messages and increase my own progress bar.</p>
  
  <p>2)  If 1 is possible, I would need a way to specify the default location.</p>
  
  <p>3)  I have a separate library project, where I have a custom install class (inherits from “System.Configuration.Install.Installer”) from within the install handler I’d like to be able to show custom windows forms, and control choices made by the user. I guess this is possible by adding a reference to system.windows.forms, but would this be the correct way to go about this? If I couldn't hide the default install form, these custom forms would appear over the default install one and I think it would look too great.</p>
  
  <p>Suggestions, links etc appreciated
  Thanks!</p>
  
  <p>*<strong><em>UPDATE 1 *</em></strong></p>
  
  <p>Could I launch an .msi from c# code but also passing in a value.? </p>
  
  <p>Just what this guy does here:
  <a href="http://geekswithblogs.net/thibbard/archive/2006/12/28/CSharpCodeToInstallMSISilentlyAndKnowWhenItIsDone.aspx" rel="nofollow">link</a></p>
  
  <p>But passing in a value... then from my custom install class I take actions depending on this value.</p>
  
  <p><strong>UPDATE 2</strong></p>
  
  <p>Seems like I can:
  <a href="http://www.codeproject.com/KB/install/command_lines_setups.aspx" rel="nofollow">link code project</a></p>
  
  <p><strong>UPDATE 3</strong></p>
  
  <p>I'm considering in doing the following, I'll start testing with a winforms app.</p>
  
  <p>1) Launch winforms application.<br>
  2) Make a few webService calls, display data, user makes selection.<br>
  3) As per link in update 1, launch process(silent mode) and per update 2, pass in selected values.<br>
  4) Use some cross process events mechanism (WCF) so that my custom install class can notify my form of the different steps its running and update progress bar and messages.</p>