Microsoft.VisualStudio.Project.ConfigProvider.DeletePlatform C# (CSharp) Method

DeletePlatform() protected method

protected DeletePlatform ( Microsoft.Build.Evaluation project, string platformName ) : int
project Microsoft.Build.Evaluation
platformName string
return int
        protected virtual int DeletePlatform(MSBuild.Project project, string platformName)
        {
            if (project == null)
                throw new ArgumentNullException("project");

            // Verify that this configuration exists
            string[] platforms = GetPlatformsFromProject();
            if (!platforms.Contains(platformName, StringComparer.OrdinalIgnoreCase))
                return VSConstants.S_OK;

            string[] configs = GetPropertiesConditionedOn(ProjectFileConstants.Configuration);

            foreach (string platform in platforms)
            {
                if (!string.Equals(platform, platformName, StringComparison.OrdinalIgnoreCase))
                    continue;

                foreach (string config in configs)
                {
                    // Create condition of configuration to remove
                    string platformCondition = GetPlatformCondition(platform).Trim();
                    string configPlatformCondition = GetConfigurationPlatformCondition(config, platform).Trim();

                    foreach (ProjectPropertyGroupElement element in project.Xml.PropertyGroups.ToArray())
                    {
                        if (element.Condition == null)
                            continue;

                        if (string.Equals(element.Condition.Trim(), platformCondition, StringComparison.OrdinalIgnoreCase)
                            || string.Equals(element.Condition.Trim(), configPlatformCondition, StringComparison.OrdinalIgnoreCase))
                        {
                            element.Parent.RemoveChild(element);
                        }
                    }
                }
            }

            return VSConstants.S_OK;
        }