public ProjectContentContainer(MSBuildBasedProject project, IProjectContent initialProjectContent) { if (project == null) { throw new ArgumentNullException("project"); } this.project = project; this.projectContent = initialProjectContent.SetAssemblyName(project.AssemblyName).SetLocation(project.OutputAssemblyFullPath).AddAssemblyReferences(references); this.assemblyModel = (IUpdateableAssemblyModel)project.AssemblyModel; this.assemblyModel.AssemblyName = this.projectContent.AssemblyName; this.assemblyModel.FullAssemblyName = this.projectContent.FullAssemblyName; this.cacheFileName = GetCacheFileName(project.FileName); SD.ProjectService.ProjectItemAdded += OnProjectItemAdded; SD.ProjectService.ProjectItemRemoved += OnProjectItemRemoved; SD.AssemblyParserService.AssemblyRefreshed += OnAssemblyRefreshed; List <FileName> filesToParse = new List <FileName>(); foreach (var file in project.Items.OfType <FileProjectItem>()) { if (IsParseableFile(file)) { var fileName = file.FileName; parserService.AddOwnerProject(fileName, project, startAsyncParse: false, isLinkedFile: file.IsLink); filesToParse.Add(fileName); } } SD.ParserService.LoadSolutionProjectsThread.AddJob( monitor => Initialize(monitor, filesToParse), "Loading " + project.Name + "...", filesToParse.Count + LoadingReferencesWorkAmount); }