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); } //------------------------------------ }
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); }
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); } }
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); } }