コード例 #1
0
        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;
        }
コード例 #2
0
        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;
        }