/// <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; } } }