Example #1
0
        private static List <(string name, string version)> ParsePackages(XDocument doc)
        {
            var msbuildDoc = new MSBuildDocument(doc);
            var group      = msbuildDoc.XPathSelectElements("PropertyGroup").Single();

            var list = new List <(string name, string version)>();

            foreach (var e in group.Elements())
            {
                list.Add((e.Name.LocalName, e.Value.Trim()));
            }

            return(list);
        }
        internal void ConvertPclProject()
        {
            var importName = _namespace.GetName("Import");

            var propsElement  = _projectUtil.FindImportWithName("Settings.props");
            var targetElement = _projectUtil.FindImportWithName("Imports.targets");

            var project = propsElement.Attribute("Project");

            project.Value = Path.Combine(Path.GetDirectoryName(project.Value), "SettingsSdk.props");

            var tfiElement = _msbuildDocument.XPathSelectElements("TargetFrameworkIdentifier").Single();
            var tfElement  = new XElement(_namespace.GetName("TargetFramework"), GetTargetFrameworkValue());

            tfiElement.AddBeforeSelf(tfElement);
            tfiElement.Remove();
            _msbuildDocument.XPathSelectElements("TargetFrameworkVersion").Single().Remove();
            MaybeAddPackageTargetFallback(tfElement);

            if (_projectUtil.IsExe)
            {
                MaybeAddRuntimeIdentifiers(tfElement);
                RemoveLegacyNugetProperties();
            }

            var tfpElement = _msbuildDocument.XPathSelectElements("TargetFrameworkProfile").FirstOrDefault();

            if (tfpElement != null)
            {
                tfpElement.Remove();
            }

            if (!SkipPackageReferenceMerge())
            {
                ConvertPackageReferences(inlineVersion: true);
            }

            RemoveProjectJson();

            // Remove ToolsVersion
        }