protected override FileProjectLoaderBase CreateProjectLoader(ProjectInfo info)
 {
     LanguageID id = LanguageHelper.FromProjectLanguageTag(info.ProjectLangTag);
     switch (id)
     {
         case LanguageID.Basic:
         case LanguageID.CSharp:
             return new VS2005VSLangProjectLoader();
     }
     return base.CreateProjectLoader(info);
 }
 // private methods...
 #region CreateProjectLoader
 protected virtual FileProjectLoaderBase CreateProjectLoader(ProjectInfo info)
 {
     LanguageID id = LanguageHelper.FromProjectLanguageTag(info.ProjectLangTag);
     switch (id)
     {
         case LanguageID.Basic:
         case LanguageID.CSharp:
             return new Vs2002VSLangProjectLoader();
         case LanguageID.Cpp:
         case LanguageID.CppMe:
             return new Vs2002VCProjectLoader();
     }
     return null;
 }
        protected override ProjectElement LoadProject(ProjectInfo info, Hashtable projects, string configuration, string platform)
        {
            XmlDocument lDoc = new XmlDocument();
            lDoc.Load(info.FilePath);
            string lProjectDir = Path.GetDirectoryName(info.FilePath);

            CppProjectElement lProject = new CppProjectElement(info.Name);
            lProject.SetFullName(info.FilePath);
            LoadReferences(lProject, projects, lDoc, lProjectDir, info.ProjectLangTag);
            LoadImportedNamespaces(lProject, lDoc, lProjectDir, info.ProjectLangTag);
            LoadFiles(lProject, lDoc, lProjectDir, info.ProjectLangTag);
            LoadRootNamespace(lProject, lDoc, lProjectDir, info.ProjectLangTag);
            LoadCompileUnits(lProject, lDoc, lProjectDir, info.ProjectLangTag);
            return lProject;
        }
 public override ProjectElement Load(ProjectInfo info, Hashtable projects, string configuration, string platform)
 {
     return LoadProject(info, projects, configuration, platform);
 }
 public override ProjectElement Load(ProjectInfo info, Hashtable projects)
 {
     return LoadProject(info, projects, string.Empty, string.Empty);
 }
        protected virtual ProjectElement LoadProject(ProjectInfo info, Hashtable projects, string configuration, string platform)
        {
            ProjectElement projectElement = CreateProjectElement(info);

            XmlDocument lDoc = new XmlDocument();
            lDoc.Load(info.FilePath);

            string lProjectDir = Path.GetDirectoryName(info.FilePath);
            LoadRootNamespace(projectElement, lDoc, lProjectDir, info.ProjectLangTag);
            LoadReferences(projectElement, projects, lDoc, lProjectDir, info.ProjectLangTag);
            LoadImportedNamespaces(projectElement, lDoc, lProjectDir, info.ProjectLangTag);
            LoadFiles(projectElement, lDoc, lProjectDir, info.ProjectLangTag);
            return projectElement;
        }
        protected virtual ProjectElement CreateProjectElement(ProjectInfo info)
        {
            if (info.ProjectLangTag != "VisualBasic")
                return new ProjectElement(info.Name, info.FilePath, info.Kind);

            ProjectElement projectElement = new DX_VBLanguage.VBProjectElement(info.Name);
            projectElement.SetFullName(info.FilePath);
            projectElement.SetKind(info.Kind);
            projectElement.SetLanguage(LanguageID.Basic.ToString());
            return projectElement;
        }
 public abstract ProjectElement Load(ProjectInfo info, Hashtable projects, string configuration, string platform);
 public abstract ProjectElement Load(ProjectInfo info, Hashtable projects);
 void AddProjectRefernces(ProjectInfo info, string line)
 {
     int equalsIdx = line.IndexOf(STR_Equals);
     if (equalsIdx >= 0)
     {
         string propertiesLine = line.Substring(equalsIdx + 1);
         propertiesLine = RemoveStringQuotes(propertiesLine);
         string[] refs = propertiesLine.Split(';');
         foreach (string rf in refs)
         {
             string[] refValue = rf.Split('|');
             info.AddProjectReference(refValue[0]);
         }
     }
 }
 protected ProjectInfo GetProjectInfo(string solutionDir, string line)
 {
     ProjectInfo lInfo = new ProjectInfo();
     GetProjectName(solutionDir, line, out lInfo.Name, out lInfo.FilePath, out lInfo.Guid);
     lInfo.ProjectLangTag = GetProjectLanguageTag(lInfo.FilePath);
     lInfo.Kind = GetProjectKind(line);
     return lInfo;
 }
        // protected methods...
        protected override ProjectElement LoadProject(ProjectInfo info, Hashtable projects, string configuration, string platform)
        {
            if (info.Kind == STR_SolutionFolder)
            {
                return null;

            }
            if (info.Kind == ProjectTypeGuidConstants.WebSite)
            {
                return LoadWebSiteProject(info, projects);

            }
            string projectDir = Path.GetDirectoryName(info.FilePath);
            ProjectElement result = CreateProjectElement(info);

            MsBuildProjectLoader msBuildLoader = new MsBuildProjectLoader(info.FilePath);

            result.OptionStrict = msBuildLoader.OptionStrict;
            result.SetRootNamespace(msBuildLoader.RootNamespace);
            result.SetAssemblyName(msBuildLoader.AssemblyName);
            result.SetTargetFramework(msBuildLoader.TargetFramework);
            LoadProjectTypeGuids(result, msBuildLoader);
            LoadNotImportStdLibOption(result, msBuildLoader);
            LoadProjectDefines(result, msBuildLoader, configuration, platform);
            LoadReferences(result, msBuildLoader, projectDir);
            LoadProjectReferences(result, msBuildLoader, projects);
            LoadImportedNamespaces(result, msBuildLoader);
            LoadFiles(result, msBuildLoader, projectDir);

            return result;
        }
        private void LoadWebSiteProjectReferences(ProjectElement result, ProjectInfo info, Hashtable projects)
        {
            foreach (string prjRefGuid in info.ProjectReferences)
            {
                ProjectInfo prfRefInfo = FindProjectByGuid(projects, prjRefGuid);
                if (prfRefInfo == null)
                {
                    continue;

                }
                AssemblyReference projectRef = new AssemblyReference(String.Empty);
                projectRef.SetSourceProjectFullName(prfRefInfo.FilePath);
                result.AddReference(projectRef);
            }
        }
 private void LoadWebSiteReferences(ProjectElement result, ProjectInfo info)
 {
     WebConfigInfo webConfigInfo = WebConfigInfo.Create(result);
     if (webConfigInfo.Assemblies == null)
     {
         return;
     }
     foreach (string assembly in webConfigInfo.Assemblies)
     {
         string path = assembly;
         if (!File.Exists(path))
         {
             path = GetAssemblyPath(assembly);
         }
         if (!String.IsNullOrEmpty(path))
         {
             AssemblyReference resultReference = new AssemblyReference(path);
             result.AddReference(resultReference);
         }
     }
 }
        private ProjectElement LoadWebSiteProject(ProjectInfo info, Hashtable projects)
        {
            ProjectElement result = CreateProjectElement(info);
            result.SetIsWebSite(true);

            //result.SetTargetFramework(msBuildLoader.TargetFramework);

            LoadWebSiteProjectReferences(result, info, projects);
            LoadFilesFromPath(result, info.FilePath);

            LoadWebSiteReferences(result, info);

            return result;
        }