public ProjectLoader(string path, GlobalConfig globalConfig) { _globalConfig = globalConfig; _projectFileInfo = new FileInfo(path); XmlDocument doc = new XmlDocument(); doc.Load(path); _nsMan = new XmlNamespaceManager(doc.NameTable); const string kMsBuildNs = "http://schemas.microsoft.com/developer/msbuild/2003"; _nsMan.AddNamespace("msb", kMsBuildNs); _result = new ProjectFileModel(); _result.Path = path; LoadGlobals(doc); LoadTargets(doc); LoadIncludes(doc); LoadSource(doc); Result = _result; }
public DiffProcessor(Config config) { _config = config; var projects = new ProjectFileCache(_config.Globals); var result = new Diff(); result.Targets = new List <TargetDiff>(); foreach (var mapping in config.Mappings) { ProjectFileModel left = projects[mapping.Left.ProjectPath]; TargetModel leftTarget = left.FindTarget(mapping.Left.Config, mapping.Left.Platform); if (leftTarget == null) { throw new Exception("Target (" + mapping.Left.Config + "|" + mapping.Left.Platform + ") not found in " + left.Path + "!"); } ProjectFileModel right = projects[mapping.Right.ProjectPath]; TargetModel rightTarget = right.FindTarget(mapping.Right.Config, mapping.Right.Platform); if (rightTarget == null) { throw new Exception("Target (" + mapping.Right.Config + "|" + mapping.Right.Platform + ") not found in " + right.Path + "!"); } var diff = CreateDiff(leftTarget, rightTarget); diff.Name = mapping.Name; diff.Left = new TargetId(mapping.Left.ProjectPath, mapping.Left.Config, mapping.Left.Platform); diff.Right = new TargetId(mapping.Right.ProjectPath, mapping.Right.Config, mapping.Right.Platform); result.Targets.Add(diff); } Result = result; }