Visual Studio 2017 打开某些解决方案时崩溃

Visual Studio 2017 crashes when opening certain solution

我有一个在 VS2015 中运行良好的解决方案,但我无法使用 Visual Studio 2017 (15.0.0+26228.12) 的新版本打开。

根据 Windows "Event Viewer",这似乎是问题所在:该项目已经传递引用了目标项目。

这里是完整的堆栈跟踪:

StreamJsonRpc.RemoteInvocationException: The project already transitively references the target project.
   bei Microsoft.CodeAnalysis.SolutionState.CheckNotContainsTransitiveReference(ProjectId fromProjectId, ProjectId toProjectId)
   bei Microsoft.CodeAnalysis.SolutionState.AddProjectReference(ProjectId projectId, ProjectReference projectReference)
   bei Microsoft.CodeAnalysis.Solution.AddProjectReference(ProjectId projectId, ProjectReference projectReference)
   bei Microsoft.CodeAnalysis.Project.AddProjectReference(ProjectReference projectReference)
   bei Microsoft.CodeAnalysis.Workspace.UpdateReferencesAfterAdd(Solution solution)
   bei Microsoft.CodeAnalysis.Workspace.UpdateReferencesAfterAdd()
   bei Microsoft.CodeAnalysis.Remote.RemoteWorkspace.AddSolution(SolutionInfo solutionInfo)
   bei Microsoft.CodeAnalysis.Remote.SolutionService.<UpdatePrimaryWorkspace_NoLockAsync>d__11.MoveNext()

解决方案非常复杂,使用文本编辑器更改它以查找导致问题的项目感觉就像大海捞针。

有人知道这个错误并能指出正确的方向吗?也许我必须查看解决方案中的某个部分才能找到错误?

我通过在解决方案中慢慢搜索有问题的项目然后删除传递引用来解决问题。

首先,我在文本编辑器(如 Notepad++)中打开解决方案并删除了一堆项目。然后我在VS2017中打开解决方案,看是不是又闪退了。如果它没有崩溃,我发现项目的边际可能会出现问题。之后,我通过文本编辑器将一个项目一个接一个地添加回解决方案。每次我这样做时,我都必须重新启动 VS2017 以查看它是否再次崩溃。

确定问题项目后,我在VS2015中打开未修改的解决方案,并查看了该项目的参考资料。就我而言,很容易看出哪些参考资料有问题。在我删除这个有问题的参考后,项目在 VS2017 中打开没有问题。