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