Visual studio Visual Studio 2017在打开特定解决方案时崩溃

Visual studio Visual Studio 2017在打开特定解决方案时崩溃,visual-studio,visual-studio-2017,Visual Studio,Visual Studio 2017,我有一个在VS2015中运行良好的解决方案,我无法用新版本的Visual Studio 2017(15.0.0+26228.12)打开它 根据Windows“事件查看器”的说法,这似乎是一个问题:项目已经过渡地引用了目标项目 这里是完整的stacktrace: StreamJsonRpc.RemoteInvocationException: The project already transitively references the target project. bei Microso

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

根据Windows“事件查看器”的说法,这似乎是一个问题:项目已经过渡地引用了目标项目

这里是完整的stacktrace:

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()
StreamJsonRpc.RemoteInvocationException:该项目已以传递方式引用目标项目。
bei Microsoft.CodeAnalysis.SolutionState.CheckNotContainesTransitiverReference(ProjectId fromProjectId,ProjectId toProjectId)
bei Microsoft.CodeAnalysis.SolutionState.AddProjectReference(ProjectId ProjectId,ProjectReference ProjectReference)
bei Microsoft.CodeAnalysis.Solution.AddProjectReference(Projectd ProjectId,ProjectReference ProjectReference)
bei Microsoft.CodeAnalysis.Project.AddProjectReference(ProjectReference)
bei Microsoft.CodeAnalysis.Workspace.UpdateReferencesAfterAdd(解决方案)
bei Microsoft.CodeAnalysis.Workspace.UpdateReferencesAfterAdd()
bei Microsoft.CodeAnalysis.Remote.RemoteWorkspace.AddSolution(SolutionInfo SolutionInfo)
bei Microsoft.CodeAnalysis.Remote.SolutionService.d_u11.MoveNext()
解决方案相当复杂,使用文本编辑器对其进行更改以查找导致问题的项目感觉就像大海捞针


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

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

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


在我确定了有问题的项目后,我在VS2015中打开了未修改的解决方案,并查看了该项目的参考资料。在我的例子中,很容易看出什么引用是有问题的。在我删除了这个有问题的参考之后,项目在VS2017中没有问题地打开。

向MS报告可能是更好的选择。单击帮助->种子反馈->报告问题。在新窗口中,搜索“解决方案崩溃”。有很多类似的抱怨。搜索“可传递”,您将看到相同的问题(未修复)