public Project(StructEx.Solution solution, string title, string fileName) : base(solution, title, fileName) { Files = new List<File>(); ProjectContent = new CSharpProjectContent(); ResolvedReferencedAssemblies = new List<IUnresolvedAssembly>(); ProjectContent = ProjectContent.SetAssemblyName(AssemblyName); ProjectContent = ProjectContent.SetProjectFileName(fileName); ProjectContent = ProjectContent.SetCompilerSettings(Utils.Convert.ToCompilerSettings(CompilerSettings)); foreach (var sourceCodeFile in MsBuildProject.GetItems("Compile")) { Files.Add(new File(this, Path.Combine(MsBuildProject.DirectoryPath, sourceCodeFile.EvaluatedInclude))); } var files = Files.Select(f => f.UnresolvedTypeSystemForFile); ProjectContent = ProjectContent.AddOrUpdateFiles(files); foreach (var projectReference in ReferencedProjects) { ProjectContent = ProjectContent.AddAssemblyReferences(new[] { new ProjectReference(projectReference) }); } ResolveAssemblies(); }
public static CompilerSettings ToCompilerSettings(StructEx.CompilerSettings settings) { var compilerSettings = new CompilerSettings { AllowUnsafeBlocks = settings.AllowUnsafeBlocks, CheckForOverflow = settings.CheckForOverflow }; foreach(var symbol in settings.ConditionalSymbols) { compilerSettings.ConditionalSymbols.Add(symbol); } return compilerSettings; }