Пример #1
0
        public static void ConvertToLinkProjectNetStd(SolutionMx slnMx,
                                                      string srcProject,
                                                      string autoGenFolder,
                                                      string targetFramework,
                                                      bool removeOriginalSrcProject)
        {
            SimpleNetStdProj netstdProj = new SimpleNetStdProj();

            netstdProj.SdkVersion      = "Microsoft.NET.Sdk";
            netstdProj.TargetFramework = targetFramework;
            //copy 'condition' nodes
            //------------------------------------
            XmlDocument xmldoc = new XmlDocument();

            xmldoc.Load(srcProject);


            netstdProj.AddPropertyGroups(SelectPropertyGroups(xmldoc.DocumentElement));

            List <XmlElement> compileNodes = SelectCompileNodes(xmldoc.DocumentElement);

            string onlyFileName     = Path.GetFileName(srcProject);
            string saveFileName     = slnMx.SolutionDir + "\\" + autoGenFolder + "\\" + onlyFileName;
            string targetSaveFolder = slnMx.SolutionDir + "\\" + autoGenFolder;

            //------------------------------------
            foreach (XmlElement elem in compileNodes)
            {
                XmlAttribute includeAttr = elem.GetAttributeNode("Include");

                netstdProj.AddCompileNode(
                    slnMx.BuildPathRelativeToOther(targetSaveFolder,
                                                   SolutionMx.CombineRelativePath(includeAttr.Value),
                                                   out string leftPart, out string rightPart),
                    //
                    rightPart
                    );
            }

            string targetSaveDir = System.IO.Path.GetDirectoryName(saveFileName);

            if (!Directory.Exists(targetSaveDir))
            {
                Directory.CreateDirectory(targetSaveDir);
            }

            //xmldoc.Save(saveFileName);
            netstdProj.Save(saveFileName);
            if (removeOriginalSrcProject)
            {
                File.Delete(srcProject);
            }
            //------------------------------------
        }
Пример #2
0
        public static void ConvertToLinkProjectXamarin_droid(SolutionMx slnMx,
                                                             string srcProject,
                                                             string autoGenFolder,
                                                             string targetFramework,
                                                             bool removeOriginalSrcProject)
        {
            SimpleXamarin_MobileProj simpleXamarinProj = new SimpleXamarin_MobileProj(MobileProjPlatform.Android);
            XmlDocument xmldoc = new XmlDocument();

            xmldoc.Load(srcProject);
            XmlElement rootDoc = xmldoc.DocumentElement;

            List <XmlElement> compileNodes            = SelectCompileNodes(xmldoc.DocumentElement);
            string            onlyFileName            = Path.GetFileName(srcProject);
            string            onlyFilenameNoExtension = System.IO.Path.GetFileNameWithoutExtension(onlyFileName);


            string saveFileName     = slnMx.SolutionDir + "\\" + autoGenFolder + "\\" + onlyFileName;
            string targetSaveFolder = slnMx.SolutionDir + "\\" + autoGenFolder;



            //TODO: review here,
            //temp fix
            simpleXamarinProj.RootNamespace    =
                simpleXamarinProj.AssemblyName = onlyFilenameNoExtension + ".Droid";

            //simpleXamarinProj.DefineConstants = ";PIXEL_FARM; PIXEL_FARM_NET20; NET20; MINIMAL; GLES; WIN32; GL_ENABLE; SHARPZIPLIB;NETSTANDARD;";
            simpleXamarinProj.DefineConstants = ";PIXEL_FARM; PIXEL_FARM_NET20; NET20; GL_ENABLE; SHARPZIPLIB;NETSTANDARD;";

            foreach (XmlElement elem in compileNodes)
            {
                XmlAttribute      includeAttr = elem.GetAttributeNode("Include");
                SimpleCompileNode compileNode = new SimpleCompileNode();
                compileNode.Include = slnMx.BuildPathRelativeToOther(targetSaveFolder,
                                                                     SolutionMx.CombineRelativePath(includeAttr.Value),
                                                                     out string leftPart, out string rightPart);
                compileNode.Link = rightPart;
                simpleXamarinProj.AddCompileNode(compileNode);
            }

            string targetSaveDir = System.IO.Path.GetDirectoryName(saveFileName);

            if (!Directory.Exists(targetSaveDir))
            {
                Directory.CreateDirectory(targetSaveDir);
            }
            simpleXamarinProj.Save(saveFileName);

            //---

            File.Copy("AndroidManifest.xml", targetSaveFolder + "/AndroidManifest.xml", true);
        }
Пример #3
0
        public static void ConvertToLinkProject2(SolutionMx slnMx, string srcProject, string autoGenFolder, bool removeOriginalSrcProject)
        {
            XmlDocument xmldoc = new XmlDocument();

            xmldoc.Load(srcProject);
            var    compileNodes     = SelectCompileNodes(xmldoc.DocumentElement);
            string onlyFileName     = Path.GetFileName(srcProject);
            string saveFileName     = slnMx.SolutionDir + "\\" + autoGenFolder + "\\" + onlyFileName;
            string targetSaveFolder = slnMx.SolutionDir + "\\" + autoGenFolder;
            string rightPart;

            string beginAt = slnMx.BuildPathRelativeToSolution(targetSaveFolder, out rightPart);

            foreach (XmlElement elem in compileNodes)
            {
                XmlAttribute includeAttr  = elem.GetAttributeNode("Include");
                string       includeValue = includeAttr.Value;
                string       combinedPath = SolutionMx.CombineRelativePath(includeValue);


                string b2 = slnMx.BuildPathRelativeToOther(targetSaveFolder, combinedPath, out rightPart);
                //this version:
                //auto gen project is lower than original 1 level
                //so change the original src location
                //and create linked child node
                includeAttr.Value = "..\\" + beginAt + rightPart;


                XmlElement linkNode = xmldoc.CreateElement("Link", elem.NamespaceURI);
                linkNode.InnerText = rightPart;
                elem.AppendChild(linkNode);
            }

            string targetSaveDir = System.IO.Path.GetDirectoryName(saveFileName);

            if (!Directory.Exists(targetSaveDir))
            {
                Directory.CreateDirectory(targetSaveDir);
            }

            xmldoc.Save(saveFileName);
            if (removeOriginalSrcProject)
            {
                File.Delete(srcProject);
            }
        }
Пример #4
0
        public static void ConvertToLinkProject(SolutionMx slnMx, string srcProject, string autoGenFolder, bool removeOriginalSrcProject)
        {
            XmlDocument xmldoc = new XmlDocument();

            xmldoc.Load(srcProject);
            List <XmlElement> compileNodes     = SelectCompileNodes(xmldoc.DocumentElement);
            string            onlyFileName     = Path.GetFileName(srcProject);
            string            saveFileName     = slnMx.SolutionDir + "\\" + autoGenFolder + "\\" + onlyFileName;
            string            targetSaveFolder = slnMx.SolutionDir + "\\" + autoGenFolder;

            foreach (XmlElement elem in compileNodes)
            {
                XmlAttribute includeAttr = elem.GetAttributeNode("Include");

                includeAttr.Value = slnMx.BuildPathRelativeToOther(targetSaveFolder,
                                                                   SolutionMx.CombineRelativePath(includeAttr.Value),
                                                                   out string leftPart, out string rightPart);

                XmlElement linkNode = xmldoc.CreateElement("Link", elem.NamespaceURI);
                linkNode.InnerText = rightPart;
                elem.AppendChild(linkNode);
            }

            string targetSaveDir = System.IO.Path.GetDirectoryName(saveFileName);

            if (!Directory.Exists(targetSaveDir))
            {
                Directory.CreateDirectory(targetSaveDir);
            }

            xmldoc.Save(saveFileName);
            if (removeOriginalSrcProject)
            {
                File.Delete(srcProject);
            }
        }