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



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

根据Windows"事件查看器",这似乎是问题所在:项目已经可传递地引用了目标项目。

这里是完整的堆栈跟踪:

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中打开没有问题。

最新更新