title: VS2015 Visual Studio Insaller=>Setup Project add custom action
body: <p>i want to check if master software is installed or not, if master software not install then abort setup. for check that i get code</p>
  
  <pre><code>/// &lt;summary&gt;
  /// To check software installed or not
  /// &lt;/summary&gt;
  /// &lt;param name="controlPanelDisplayName"&gt;Display name of software from control panel&lt;/param&gt;
  private static bool IsApplictionInstalled(string controlPanelDisplayName)
  {
      string displayName;
      RegistryKey key;
  
      // search in: CurrentUser
      key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall");
      if (null != key)
      {
          foreach (string keyName in key.GetSubKeyNames())
          {
              RegistryKey subkey = key.OpenSubKey(keyName);
              displayName = subkey.GetValue("DisplayName") as string;
              if (controlPanelDisplayName.Equals(displayName, StringComparison.OrdinalIgnoreCase) == true)
              {
                  return true;
              }
          }
      }
  
      // search in: LocalMachine_32
      key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall");
      if (null != key)
      {
          foreach (string keyName in key.GetSubKeyNames())
          {
              RegistryKey subkey = key.OpenSubKey(keyName);
              displayName = subkey.GetValue("DisplayName") as string;
              if (controlPanelDisplayName.Equals(displayName, StringComparison.OrdinalIgnoreCase) == true)
              {
                  return true;
              }
          }
      }
      // search in: LocalMachine_64
      key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall");
      if (null != key)
      {
          foreach (string keyName in key.GetSubKeyNames())
          {
              RegistryKey subkey = key.OpenSubKey(keyName);
              displayName = subkey.GetValue("DisplayName") as string;
              if (controlPanelDisplayName.Equals(displayName, StringComparison.OrdinalIgnoreCase) == true)
              {
                  return true;
              }
          }
      }
      // NOT FOUND
      return false;
  }
  </code></pre>
  
  <p>but don't know where to put and where to call this function. please help me.</p>
  
  <p>thanks in advance.</p>