2017-04-03 637 views
1

我有一个可以在VS2015中正常工作的解决方案,我无法用新版本的Visual Studio 2017(15.0.0 + 26228.12)打开该解决方案。当打开某些解决方案时,Visual Studio 2017崩溃

这似乎是根据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() 

的解决方案是相当复杂,用文本编辑器将其更改为发现导致此问题的感觉就像寻找一个大海捞针项目。

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

+0

向MS报告可能是更好的选择。点击帮助 - >种子反馈 - >报告问题。在新窗口中,搜索'解决方案崩溃'。有很多类似的投诉。搜索'transitively',你会看到一个相同的问题(不固定) – qxg

回答

0

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

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

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

相关问题