title: nGen EXE +DLLs through Setup and Deployment project
body: <p>I have this code that <em>should</em> nGen my main application EXE:</p>
  
  <pre><code>using System;
  using System.Collections;
  using System.ComponentModel;
  using System.Configuration.Install;
  using System.Data;
  using System.Diagnostics;
  using System.IO;
  using System.Runtime.InteropServices;
  
  namespace FileOnline.DesktopClient.Setup.Support {
      [RunInstaller(true)]
      public partial class CustomNGen : Installer {
  
          public override void Install(IDictionary stateSaver) {
              base.Install(stateSaver);
              ExecuteNGen("install", true);
          }
  
          public override void Uninstall(IDictionary savedState) {
              base.Uninstall(savedState);
              //CleanUpShortcuts();
              ExecuteNGen("uninstall", false);
          }
  
          private void ExecuteNGen(string cmd, bool validate) {
              var ngenStr = Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "ngen");
              var assemblyPath = Context.Parameters["assemblypath"];
  
              using (var process = new Process {
                  StartInfo = {
                      FileName = ngenStr,
                      Arguments = string.Format(@"{0} ""{1}""", cmd, assemblyPath),
                      CreateNoWindow = true,
                      UseShellExecute = false
                  }
              }) {
                  process.Start();
                  process.WaitForExit();
  
                  if (validate &amp;&amp; process.ExitCode != 0)
                      throw new Exception(String.Format("Ngen exit code: {0}", process.ExitCode));
              }
          }
  
      }
  
  }
  </code></pre>
  
  <p>What I require is that not only the EXE be nGen'd, but all the referenced DLLs (my whole solution) also get nGen'd</p>
  
  <p>Say my EXE project is called: </p>
  
  <pre><code>FileOnline.DesktopClient
  </code></pre>
  
  <p>And it depends on these:</p>
  
  <pre><code>FileOnline.DesktopClient.BaseControls
  FileOnline.DesktopClient.BaseForms
  FileOnline.DesktopClient.Utilities
  FileOnline.DesktopClient.Dialogboxes
  FileOnline.DesktopClient.HelpingExtension
  FileOnline.DesktopClient.*More stuff*
  </code></pre>
  
  <p>How can I nGen these through the only deployment project in the solution?</p>
  
  <p>Thanks.</p>