Browse Source

Fix #1706: Handle unloaded projects correctly to avoid NotImplementedException

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

13
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) {
case DTEConstants.vsProjectKindSolutionItems:
// This is a solution folder -> search in sub-projects // This is a solution folder -> search in sub-projects
var subProject = FindProject( var subProject = FindProject(
project.ProjectItems.OfType<EnvDTE.ProjectItem>().Select(pi => pi.SubProject).OfType<EnvDTE.Project>(), project.ProjectItems.OfType<EnvDTE.ProjectItem>().Select(pi => pi.SubProject).OfType<EnvDTE.Project>(),
projectFile); projectFile);
if (subProject != null) if (subProject != null)
return subProject; return subProject;
} else { break;
case DTEConstants.vsProjectKindUnmodeled:
// Skip unloaded projects completely
break;
default:
// Match by project's file name
if (project.FileName == projectFile) if (project.FileName == projectFile)
return project; return project;
break;
} }
} }

Loading…
Cancel
Save