private IProjectContent AddAllAssemblyReferences(CSharpSolution solution, Project msbuildProject, IProjectContent pc) { foreach (var assemblyFile in ResolveAssemblyReferences(msbuildProject)) { var assembly = solution.LoadAssembly(assemblyFile); pc = pc.AddAssemblyReferences(new[] { assembly }); } return(pc); }
public CSharpProject(CSharpSolution solution, string title, string fileName) { Files = new List <CSharpFile>(); CompilerSettings = new CompilerSettings(); Solution = solution; Title = title; FileName = fileName; LoadCSharpProject(solution, fileName); }
public CSharpProject(CSharpSolution solution, string title, string fileName) { Files = new List<CSharpFile>(); CompilerSettings = new CompilerSettings(); Solution = solution; Title = title; FileName = fileName; LoadCSharpProject(solution, fileName); }
private SDSolution ParseSolution(CSharpSolution solution, ICoreConfigSection sharpDoxConfig, Dictionary<string, string> tokens, bool structured) { var sdSolution = new SDSolution(solution.SolutionFile); var targetFxParser = new SDTargetFxParser(); _currentProjectIndex = 1; _totalProjects = solution.Projects.Count; for (var i = 0; i < solution.Projects.Count; i++) { ExecuteOnStepProgress((int)(((double)i / (double)solution.Projects.Count) * 50) + 20); var project = solution.Projects[i]; var projectFileName = project.FileName; var targetFx = targetFxParser.GetTargetFx(projectFileName); var sdRepository = sdSolution.GetExistingOrNew(targetFx); if (structured) { StructureParseNamespaces(project, sdRepository); StructureParseTypes(project, sdRepository); } else { ParseNamespaces(project, sdRepository, sharpDoxConfig, tokens); ParseTypes(project, sdRepository, sharpDoxConfig); // Because of excluding privates, internals and protected members // it is possible, that a namespace has no visible namespaces at all. // It is necessary to remove empty namespaces. RemoveEmptyNamespaces(sdRepository); } _currentProjectIndex++; } ExecuteOnStepProgress(80); if (!structured) { var i = 0; foreach (var sdRepository in sdSolution.Repositories) { ParseMethodCalls(solution, sdRepository); ResolveUses(sdRepository); } } return sdSolution; }
private void LoadCSharpProject(CSharpSolution solution, string fileName) { try { var msbuildProject = LoadAndInitProject(solution, fileName); var pc = CreateCSharpProjectContent(fileName); pc = AddCompileFilesToProject(msbuildProject, pc); pc = AddAllAssemblyReferences(solution, msbuildProject, pc); pc = AddAllProjectReferences(msbuildProject, pc); ProjectContent = pc; } catch (InvalidProjectFileException invalidproject) { Trace.TraceWarning(invalidproject.ToString()); } }
private Project LoadAndInitProject(CSharpSolution solution, string fileName) { var globalProperties = new Dictionary<string, string>(); globalProperties.Add("SolutionDir", solution.Directory); var msbuildProject = new Project(fileName, globalProperties, null, ProjectCollection.GlobalProjectCollection, ProjectLoadSettings.IgnoreMissingImports); AssemblyName = msbuildProject.GetPropertyValue("AssemblyName"); CompilerSettings.AllowUnsafeBlocks = GetBoolProperty(msbuildProject, "AllowUnsafeBlocks") ?? false; CompilerSettings.CheckForOverflow = GetBoolProperty(msbuildProject, "CheckForOverflowUnderflow") ?? false; var defineConstants = msbuildProject.GetPropertyValue("DefineConstants"); foreach (var symbol in defineConstants.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)) CompilerSettings.ConditionalSymbols.Add(symbol.Trim()); return msbuildProject; }
private Project LoadAndInitProject(CSharpSolution solution, string fileName) { var globalProperties = new Dictionary <string, string>(); globalProperties.Add("SolutionDir", solution.Directory); var msbuildProject = new Project(fileName, globalProperties, null, ProjectCollection.GlobalProjectCollection, ProjectLoadSettings.IgnoreMissingImports); AssemblyName = msbuildProject.GetPropertyValue("AssemblyName"); CompilerSettings.AllowUnsafeBlocks = GetBoolProperty(msbuildProject, "AllowUnsafeBlocks") ?? false; CompilerSettings.CheckForOverflow = GetBoolProperty(msbuildProject, "CheckForOverflowUnderflow") ?? false; var defineConstants = msbuildProject.GetPropertyValue("DefineConstants"); foreach (var symbol in defineConstants.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)) { CompilerSettings.ConditionalSymbols.Add(symbol.Trim()); } return(msbuildProject); }
internal MethodCallParser(SDRepository repository, CSharpSolution solution) : base(repository) { _solution = solution; }
private CSharpSolution LoadSolution(string solutionFile) { var solution = new CSharpSolution(); solution.OnLoadingProject += (m) => ExecuteOnStepMessage(string.Format(_parserStrings.ReadingProject, m)); solution.OnLoadedProject += (t, i) => ExecuteOnStepProgress((int)(((double)i / (double)t) * 20)); solution.LoadSolution(solutionFile); return solution; }
private void ParseMethodCalls(CSharpSolution solution, SDRepository sdRepository) { var methodCallParser = new MethodCallParser(sdRepository, solution); methodCallParser.OnItemParseStart += (n) => { ExecuteOnStepMessage(_parserStrings.ParsingMethod + ": " + n); }; methodCallParser.ParseMethodCalls(); }
private IProjectContent AddAllAssemblyReferences(CSharpSolution solution, Project msbuildProject, IProjectContent pc) { foreach (var assemblyFile in ResolveAssemblyReferences(msbuildProject)) { var assembly = solution.LoadAssembly(assemblyFile); pc = pc.AddAssemblyReferences(new[] { assembly }); } return pc; }