コード例 #1
0
        public List <ProjectAsmReference> GetReferenceAsmList(string projectFile)
        {
            string fullProjectName = GetFullProjectPath(projectFile);
            List <ProjectAsmReference> asmReferenceList = new List <ProjectAsmReference>();
            Project pro = GlobalLoadedProject.LoadProject(fullProjectName);

            foreach (ProjectItem item in pro.AllEvaluatedItems)
            {
                switch (item.ItemType)
                {
                default:
                {
                }
                break;

                case "BootstrapperPackage":
                case "None":
                    break;

                case "Compile":
                    //skip
                    break;

                case "ProjectReference":
                    asmReferenceList.Add(new ProjectAsmReference(item, ProjectAsmReferenceKind.ProjectReference));
                    break;

                case "Reference":
                    asmReferenceList.Add(new ProjectAsmReference(item, ProjectAsmReferenceKind.Reference));
                    break;
                }
            }
            return(asmReferenceList);
        }
コード例 #2
0
        MergeProject CreateMergeProjectPlan(SolutionProject project)
        {
            MergeProject mergePro = new MergeProject();
            List <ProjectAsmReference> asmRefs = _solutionMx.GetReferenceAsmList(project.RelativePath);

            mergePro.PostMergeRefs = _solutionMx.GetPostMergeReferences(project.RelativePath);
            //
            string fullProjectDir = System.IO.Path.GetDirectoryName(_solutionMx.SolutionDir + "\\" + project.RelativePath);
            string projFilename   = System.IO.Path.GetFileName(project.RelativePath);

            int j = asmRefs.Count;

            for (int i = 0; i < j; ++i)
            {
                ProjectAsmReference asmRef = asmRefs[i];
                switch (asmRef.Kind)
                {
                case ProjectAsmReferenceKind.ProjectReference:
                    string result = System.IO.Path.Combine(fullProjectDir, asmRef.Name);
                    if (!System.IO.File.Exists(result))
                    {
                    }
                    mergePro.LoadSubProject(result);

                    break;

                case ProjectAsmReferenceKind.Reference:

                    mergePro._asmReferences.Add(asmRef.Name);

                    break;
                }
            }
            //----------
            //find
            var pro = GlobalLoadedProject.LoadProject(fullProjectDir + "\\" + projFilename);

            foreach (var item in pro.AllEvaluatedProperties)
            {
                //select some our interest features
                switch (item.Name)
                {
                case "DefineConstants":
                    mergePro.DefineConstants = item.EvaluatedValue;
                    break;

                case "TargetFrameworkVersion":
                    mergePro.TargetFrameworkVersion = item.EvaluatedValue;
                    break;
                }
            }
            return(mergePro);
        }
コード例 #3
0
        public List <ProjectAsmReference> GetReferenceAsmList(string projectFile)
        {
            string fullProjectName = GetFullProjectPath(projectFile);
            List <ProjectAsmReference> asmReferenceList = new List <ProjectAsmReference>();
            Project pro = GlobalLoadedProject.LoadProject(fullProjectName);

            foreach (ProjectItem item in pro.AllEvaluatedItems)
            {
                switch (item.ItemType)
                {
                default:
                {
                }
                break;

                case "BootstrapperPackage":
                case "None":
                    break;

                case "Compile":
                    //skip
                    break;

                //    {
                //        string onlyFileName = Path.GetFileName(item.EvaluatedInclude);
                //        if (onlyFileName != "AssemblyInfo.cs") //special case ***no include this file
                //        {
                //            allItems.Add(item);
                //        }
                //    }
                //    break;
                case "ProjectReference":
                    asmReferenceList.Add(new ProjectAsmReference(item, ProjectAsmReferenceKind.ProjectReference));
                    break;

                case "Reference":
                    asmReferenceList.Add(new ProjectAsmReference(item, ProjectAsmReferenceKind.Reference));
                    break;
                }
            }
            return(asmReferenceList);
        }
コード例 #4
0
        public void Load(string projectFile)
        {
            this.ProjectFileName = projectFile;

            Project pro = GlobalLoadedProject.LoadProject(projectFile);

            foreach (var item in pro.AllEvaluatedProperties)
            {
                //select some our interest features
                switch (item.Name)
                {
                case "DefineConstants":
                    DefineConstants = item.EvaluatedValue;
                    break;

                case "TargetFrameworkVersion":
                    TargetFrameworkVersion = item.EvaluatedValue;
                    break;
                }
            }

            foreach (ProjectItem item in pro.AllEvaluatedItems)
            {
                switch (item.ItemType)
                {
                case "Compile":
                {
                    string onlyFileName = Path.GetFileName(item.EvaluatedInclude);
                    if (onlyFileName != "AssemblyInfo.cs")         //special case ***no include this file
                    {
                        allItems.Add(item);
                    }
                }
                break;

                case "Reference":
                    break;
                }
            }
        }
コード例 #5
0
        public void Load(string projectFile)
        {
            this.ProjectFileName = projectFile;

            Project pro = GlobalLoadedProject.LoadProject(projectFile);

            foreach (var item in pro.AllEvaluatedProperties)
            {
                //select some our interest features
                switch (item.Name)
                {
                case "DefineConstants":
                    if (DefineConstants != null)
                    {
                    }
                    DefineConstants = item.EvaluatedValue;
                    break;

                case "TargetFrameworkVersion":
                    TargetFrameworkVersion = item.EvaluatedValue;
                    break;
                }
            }

            foreach (ProjectItem item in pro.AllEvaluatedItems)
            {
                switch (item.ItemType)
                {
                case "Compile":
                {
                    string onlyFileName = Path.GetFileName(item.EvaluatedInclude);
                    if (onlyFileName != "AssemblyInfo.cs")         //special case ***no include this file
                    {
                        allItems.Add(item);
                    }
                }
                break;

                case "Reference":
                    break;
                }
            }

            foreach (ResolvedImport imp1 in pro.Imports)
            {
                if (imp1.ImportedProject.FullPath != null &&
                    imp1.ImportedProject.FullPath.EndsWith(".projitems"))
                {
                    //this is shared project
                    //...the we
                    //read this shared project too..
                    Project sharedProj = GlobalLoadedProject.LoadProject(imp1.ImportedProject.FullPath);

                    foreach (ProjectItem item in sharedProj.AllEvaluatedItems)
                    {
                        switch (item.ItemType)
                        {
                        case "Compile":
                        {
                            string onlyFileName = Path.GetFileName(item.EvaluatedInclude);
                            if (onlyFileName != "AssemblyInfo.cs")         //special case ***no include this file
                            {
                                allItems.Add(item);
                            }
                        }
                        break;

                        case "Reference":
                            break;
                        }
                    }
                }
            }
        }