具体问题如下:
导致原因:
看了ActivityLog.xml日志显示了一个由 Visual Studio 编辑器或编辑器扩展触发的错误。错误类型是 Microsoft.VisualStudio.Composition.CompositionFailedException
,它通常表示在尝试创建或获取一个组件(在这个案例中是 Microsoft.VisualStudio.CppSvc.Internal.CodeAnalysis.ICodeAnalysisService
)时出现了问题。
错误的具体内容是:“在预期的约束之后,预期的 1 个输出合同名称 'Microsoft.VisualStudio.CppSvc.Internal.CodeAnalysis.ICodeAnalysisService',但找到的是 0 个。”这通常意味着在 Visual Studio 的组件模型中,没有找到预期的导出(即服务)。
堆栈跟踪显示了导致这个错误的代码路径,涉及了 Visual Studio 的多个内部组件和方法。
解决此问题的方法包括:
-
更新 Visual Studio:确保你正在使用最新版本的 Visual Studio,因为此问题可能在新版本中已被修复。
-
重新安装或修复 Visual Studio:有时候,组件可能会损坏或缺失。通过 Visual Studio Installer 进行修复或重新安装可能有助于解决此问题。
-
检查扩展:如果你最近安装了新的编辑器扩展,请尝试禁用它们,看看是否解决了问题。有些扩展可能与 Visual Studio 的其他部分不兼容。
-
查看 Visual Studio 日志:更详细的日志可能包含有关问题的更多信息。你可以在
%LOCALAPPDATA%\Microsoft\VisualStudio\<version>\ComponentModelCache
中找到 Visual Studio 的日志,并尝试分析它们。 -
清理组件模型缓存:有时,清理 Visual Studio 的组件模型缓存可以解决一些与组件相关的问题。你可以尝试删除
%LOCALAPPDATA%\Microsoft\VisualStudio\version\ComponentModelCache
目录下的内容。 version为你自己vs的版本号,比我我安装的vs2017version为15.0_4752391b。