示例#1
0
        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();
        }
示例#2
0
 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;
 }