public static void SyncFrameworkReferences(this IOutputTarget project, XDocument doc)
        {
            var frameworkDependencies = project.FrameworkDependencies().ToArray();

            if (frameworkDependencies.Length == 0)
            {
                return;
            }

            var itemGroupElement = doc.XPathSelectElement("Project/ItemGroup[FrameworkReference]");

            if (itemGroupElement == null)
            {
                itemGroupElement = new XElement("ItemGroup");
                itemGroupElement.Add(Environment.NewLine);
                itemGroupElement.Add("  ");

                var projectElement = doc.XPathSelectElement("Project");

                projectElement.Add("  ");
                projectElement.Add(itemGroupElement);
                projectElement.Add(Environment.NewLine);
                projectElement.Add("  ");
            }

            foreach (var dependency in frameworkDependencies)
            {
                var existingItem = doc.XPathSelectElement($"/Project/ItemGroup/FrameworkReference[@Include='{dependency}']");
                if (existingItem != null)
                {
                    continue;
                }

                /*
                 * <FrameworkReference Include="Microsoft.AspNetCore.App" />
                 */

                var item = new XElement(XName.Get("FrameworkReference"));
                item.Add(new XAttribute("Include", dependency));

                itemGroupElement.Add("  ");
                itemGroupElement.Add(item);
                itemGroupElement.Add(Environment.NewLine);
                itemGroupElement.Add("  ");
            }
        }