private bool AddReferences(IProjectContext projectContext, ReplaceStyleTemplateCommand.ExtraReferences references, string resourceKey) { ProjectXamlContext projectXamlContext = ProjectXamlContext.FromProjectContext(projectContext); if (projectXamlContext == null) { return(false); } if (references.Assemblies.Count > 0) { ISolution currentSolution = this.DesignerContext.ProjectManager.CurrentSolution; if (currentSolution != null) { List <IProject> list1 = new List <IProject>(); List <IProjectContext> list2 = new List <IProjectContext>(); foreach (IProject project in currentSolution.Projects) { ProjectXamlContext projectContext1 = ProjectXamlContext.GetProjectContext(project); if (projectContext1 != null && projectContext1.ProjectAssembly != null && references.Assemblies.Contains(projectContext1.ProjectAssembly)) { list1.Add(project); list2.Add((IProjectContext)projectContext1); } } for (int index = 0; index < list1.Count; ++index) { IProject source = list1[index]; IProjectContext projectContext1 = list2[index]; if (projectXamlContext != projectContext1 && ProjectHelper.DoesProjectReferenceHierarchyContainTarget(source, (IProjectContext)projectXamlContext)) { this.DesignerContext.MessageDisplayService.ShowError(string.Format((IFormatProvider)CultureInfo.CurrentCulture, StringTable.DocumentRefersToUnresolvedTypesHeader, new object[1] { (object)resourceKey })); return(false); } } } foreach (IAssembly assembly in (IEnumerable <IAssembly>)references.Assemblies) { projectXamlContext.EnsureAssemblyReferenceMatches(this.SceneViewModel.ProjectContext, assembly); } } foreach (string assemblyPath in (IEnumerable <string>)references.PlatformAssemblies) { projectXamlContext.EnsureAssemblyReferenced(assemblyPath); } this.SceneViewModel.DesignerContext.ViewUpdateManager.RebuildPostponedViews(); return(true); }