Browse Source

Fix #1706: Handle unloaded projects correctly to avoid NotImplementedException

pull/1725/head
Andreas Weizel 6 years ago
parent
commit
1d11d0efa4
  1. 29
      ILSpy.AddIn/Commands/OpenILSpyCommand.cs

29
ILSpy.AddIn/Commands/OpenILSpyCommand.cs

@ -98,16 +98,25 @@ namespace ICSharpCode.ILSpy.AddIn.Commands
protected EnvDTE.Project FindProject(IEnumerable<EnvDTE.Project> projects, string projectFile) protected EnvDTE.Project FindProject(IEnumerable<EnvDTE.Project> projects, string projectFile)
{ {
foreach (var project in projects) { foreach (var project in projects) {
if (project.Kind == DTEConstants.vsProjectKindSolutionItems) { switch (project.Kind) {
// This is a solution folder -> search in sub-projects case DTEConstants.vsProjectKindSolutionItems:
var subProject = FindProject( // This is a solution folder -> search in sub-projects
project.ProjectItems.OfType<EnvDTE.ProjectItem>().Select(pi => pi.SubProject).OfType<EnvDTE.Project>(), var subProject = FindProject(
projectFile); project.ProjectItems.OfType<EnvDTE.ProjectItem>().Select(pi => pi.SubProject).OfType<EnvDTE.Project>(),
if (subProject != null) projectFile);
return subProject; if (subProject != null)
} else { return subProject;
if (project.FileName == projectFile) break;
return project;
case DTEConstants.vsProjectKindUnmodeled:
// Skip unloaded projects completely
break;
default:
// Match by project's file name
if (project.FileName == projectFile)
return project;
break;
} }
} }

Loading…
Cancel
Save