internal static IReadOnlyList GetConfigurations()

in src/Microsoft.VisualStudio.SlnGen/SlnProject.cs [172:205]


        internal static IReadOnlyList<string> GetConfigurations(Project project, string projectFileExtension, bool isUsingMicrosoftNETSdk)
        {
            if (string.Equals(projectFileExtension, ".vcxproj"))
            {
                HashSet<string> items = new HashSet<string>(StringComparer.OrdinalIgnoreCase);

                foreach (ProjectItem item in project.GetItems("ProjectConfiguration"))
                {
                    string configuration = item.GetMetadataValue("Configuration");

                    if (!configuration.IsNullOrWhiteSpace())
                    {
                        items.Add(configuration);
                    }
                }

                if (items.Any())
                {
                    return items.ToList();
                }
            }

            if (isUsingMicrosoftNETSdk)
            {
                string value = project.GetPropertyValue("Configurations");

                if (!value.IsNullOrWhiteSpace())
                {
                    return value.SplitSemicolonDelimitedList().ToList();
                }
            }

            return project.GetPossiblePropertyValuesOrDefault("Configuration", "Debug").ToList();
        }