private void ButtonClicked(object sender, EventArgs e) { Project currentProject = GetSelectedProjects().ElementAt(0); var projects = _dte.Solution.GetAllProjects(); var names = from p in projects where p != currentProject select p.Name; ProjectSelector selector = new ProjectSelector(names); bool? isSelected = selector.ShowDialog(); if (isSelected.HasValue && isSelected.Value) { // need to save everything because we will directly write to the project file in the creator _dte.ExecuteCommand("File.SaveAll"); TemplateReferenceCreator creator = new TemplateReferenceCreator(); var selectedProject = projects.First(p => p.Name == selector.SelectedProjectName); creator.AddTemplateReference(currentProject, selectedProject); } }