private void AddPortableProfile(NetPortableProfileTable table, NetPortableProfile profile)
        {
            if (!profile.Name.StartsWith(NetPortableProfile.ProfilePrefix, StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            var rawNumber = profile.Name.Substring(NetPortableProfile.ProfilePrefix.Length);
            int number;

            if (!int.TryParse(rawNumber, out number))
            {
                return;
            }

            var profileFrameworks = new KeyValuePair <int, NuGetFramework[]>(
                number,
                profile.SupportedFrameworks.Select(f => VersionUtility.GetNuGetFramework(
                                                       table,
                                                       DefaultFrameworkNameProvider.Instance,
                                                       f)).ToArray());

            _profileFrameworks.Add(profileFrameworks);

            var profileOptionalFrameworks = new KeyValuePair <int, NuGetFramework[]>(
                number,
                profile.OptionalFrameworks.Select(f => VersionUtility.GetNuGetFramework(
                                                      table,
                                                      DefaultFrameworkNameProvider.Instance,
                                                      f)).ToArray());

            _profileOptionalFrameworks.Add(profileOptionalFrameworks);
        }