/// <summary>
 /// Creates the new launch condition with the given values
 /// </summary>
 public override void Execute()
 {
     try
     {
         IVsdDeployable            deployable            = (IVsdDeployable)SetupProject.Object;
         IVsdCollectionSubset      plugins               = deployable.GetPlugIns();
         IVsdLaunchConditionPlugIn launchConditionPlugin = plugins.Item("LaunchCondition") as IVsdLaunchConditionPlugIn;
         if (launchConditionPlugin != null)
         {
             vsdLaunchCondition =
                 (IVsdLaunchCondition)DteHelper.CoCreateInstance(
                     this.Site,
                     typeof(VsdLaunchConditionClass),
                     typeof(IVsdLaunchCondition));
             vsdLaunchCondition.Name       = this.LaunchConditionName;
             vsdLaunchCondition.Condition  = this.Condition;
             vsdLaunchCondition.Message    = this.Message;
             vsdLaunchCondition.InstallUrl = this.InstallUrl;
             launchConditionPlugin.Items.Add(vsdLaunchCondition);
         }
     }
     catch (Exception)
     {
         vsdLaunchCondition = null;
         throw;
     }
 }
 /// <summary>
 /// Removes the launch condition recently added
 /// </summary>
 public override void Undo()
 {
     if (vsdLaunchCondition != null)
     {
         IVsdDeployable            deployable            = (IVsdDeployable)SetupProject.Object;
         IVsdCollectionSubset      plugins               = deployable.GetPlugIns();
         IVsdLaunchConditionPlugIn launchConditionPlugin = plugins.Item("LaunchCondition") as IVsdLaunchConditionPlugIn;
         if (launchConditionPlugin != null)
         {
             launchConditionPlugin.Items.RemoveObject(vsdLaunchCondition);
             vsdLaunchCondition = null;
         }
     }
 }