public Project(Solution solution, string title, string fileName) { AssembliesResolved = false; ReferencedAssemblies = new List<string>(); CompilerSettings = new CompilerSettings(); ReferencedProjects = new List<string>(); Files = new List<File>(); Solution = solution; Title = title; FileName = Path.GetFullPath(fileName); ProjectCollection.GlobalProjectCollection.UnloadAllProjects(); MsBuildProject = new Microsoft.Build.Evaluation.Project(fileName); AssemblyName = MsBuildProject.GetPropertyValue("AssemblyName"); CompilerSettings.AllowUnsafeBlocks = MsBuildProject.GetPropertyAsBoolean("AllowUnsafeBlocks"); CompilerSettings.CheckForOverflow = MsBuildProject.GetPropertyAsBoolean("CheckForOverflowUnderflow"); var defineConstants = MsBuildProject.GetPropertyValue("DefineConstants"); foreach (string symbol in defineConstants.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries)) { CompilerSettings.ConditionalSymbols.Add(symbol.Trim()); } foreach (var sourceCodeFile in MsBuildProject.GetItems("Compile")) { Files.Add(new File(this, Path.Combine(MsBuildProject.DirectoryPath, sourceCodeFile.EvaluatedInclude))); } foreach (var projectReference in MsBuildProject.GetItems("ProjectReference")) { string referencedFileName = Path.GetFullPath(Path.Combine(MsBuildProject.DirectoryPath, projectReference.EvaluatedInclude)); ReferencedProjects.Add(referencedFileName); } }
public Project(Solution solution, string title, string fileName) { AssembliesResolved = false; ReferencedAssemblies = new List <string>(); CompilerSettings = new CompilerSettings(); ReferencedProjects = new List <string>(); Files = new List <File>(); Solution = solution; Title = title; FileName = Path.GetFullPath(fileName); ProjectCollection.GlobalProjectCollection.UnloadAllProjects(); MsBuildProject = new Microsoft.Build.Evaluation.Project(fileName); AssemblyName = MsBuildProject.GetPropertyValue("AssemblyName"); CompilerSettings.AllowUnsafeBlocks = MsBuildProject.GetPropertyAsBoolean("AllowUnsafeBlocks"); CompilerSettings.CheckForOverflow = MsBuildProject.GetPropertyAsBoolean("CheckForOverflowUnderflow"); var defineConstants = MsBuildProject.GetPropertyValue("DefineConstants"); foreach (string symbol in defineConstants.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries)) { CompilerSettings.ConditionalSymbols.Add(symbol.Trim()); } foreach (var sourceCodeFile in MsBuildProject.GetItems("Compile")) { Files.Add(new File(this, Path.Combine(MsBuildProject.DirectoryPath, sourceCodeFile.EvaluatedInclude))); } foreach (var projectReference in MsBuildProject.GetItems("ProjectReference")) { string referencedFileName = Path.GetFullPath(Path.Combine(MsBuildProject.DirectoryPath, projectReference.EvaluatedInclude)); ReferencedProjects.Add(referencedFileName); } }