Arch Linux下VS Code中C#扩展智能提示异常及MEF组合错误求助
Arch Linux下VS Code中C#扩展智能提示异常及MEF组合错误求助
最近在Arch Linux上用VS Code开发C#项目时碰到了棘手的问题:原本正常的行内智能提示功能突然失效——现在不再像之前那样给出实时的代码补全建议,只能看到基础的代码片段,严重影响开发效率。同时VS Code的输出窗口里还抛出了一堆C#扩展相关的MEF组合错误,我已经尝试了一些排查步骤,但问题依然存在,想请教大家有没有解决思路。
我已经做过的操作:
- 安装了官方全套C#相关扩展:C#、C# Dev Kit、.NET Install Tool、IntelliSense for C#
- 通过
pacman成功安装了.NET 9.0.9.sdk110-1,且系统已更新至最新状态 - 确认了dotnet路径指向正确:
/usr/share/dotnet/dotnet
输出窗口中的错误日志:
2025-10-09 13:59:03.083 [info] Locating .NET runtime version 9.0.1 2025-10-09 13:59:03.262 [info] Dotnet path: /usr/share/dotnet/dotnet 2025-10-09 13:59:03.262 [info] Activating C# + C# Dev Kit + C# IntelliCode... 2025-10-09 13:59:03.404 [info] [stdout] info: Program[0] Server started with process ID 27285 2025-10-09 13:59:04.073 [info] [stdout] fail: Microsoft.CodeAnalysis.Remote.ExportProviderBuilder[0] Encountered errors in the MEF composition: ----- CompositionError level 1 ------ Microsoft.VisualStudio.Copilot.Roslyn.Completion.CSharpMethodCallerBlueprintProvider.ctor(joinableTaskContext): expected exactly 1 export matching constraints: Contract name: Microsoft.VisualStudio.Threading.JoinableTaskContext TypeIdentityName: Microsoft.VisualStudio.Threading.JoinableTaskContext but found 0. part definition Microsoft.VisualStudio.Copilot.Roslyn.Completion.CSharpMethodCallerBlueprintProvider Microsoft.CodeAnalysis.ExternalAccess.Copilot.Internal.SemanticSearch.CopilotSemanticSearchQueryExecutor.ctor(workspaceProvider): expected exactly 1 export matching constraints: Contract name: Microsoft.CodeAnalysis.Host.IHostWorkspaceProvider TypeIdentityName: Microsoft.CodeAnalysis.Host.IHostWorkspaceProvider but found 0. part definition Microsoft.CodeAnalysis.ExternalAccess.Copilot.Internal.SemanticSearch.CopilotSemanticSearchQueryExecutor Microsoft.VisualStudio.Copilot.Roslyn.Completion.CSharpReferencedSymbolDefinitionSnippetProvider.ctor(joinableTaskContext): expected exactly 1 export matching constraints: Contract name: Microsoft.VisualStudio.Threading.JoinableTaskContext TypeIdentityName: Microsoft.VisualStudio.Threading.JoinableTaskContext but found 0. part definition Microsoft.VisualStudio.Copilot.Roslyn.Completion.CSharpReferencedSymbolDefinitionSnippetProvider Microsoft.VisualStudio.Copilot.Roslyn.Completion.CSharpMemberAccessSymbolBlueprintProvider.ctor(joinableTaskContext): expected exactly 1 export matching constraints: Contract name: Microsoft.VisualStudio.Threading.JoinableTaskContext TypeIdentityName: Microsoft.VisualStudio.Threading.JoinableTaskContext but found 0. part definition Microsoft.VisualStudio.Copilot.Roslyn.Completion.CSharpMemberAccessSymbolBlueprintProvider Microsoft.CodeAnalysis.ExternalAccess.Pythia.PythiaSignatureHelpProvider.ctor(implementation): expected exactly 1 export matching constraints: Contract name: Microsoft.CodeAnalysis.ExternalAccess.Pythia.Api.IPythiaSignatureHelpProviderImplementation TypeIdentityName: Microsoft.CodeAnalysis.ExternalAccess.Pythia.Api.IPythiaSignatureHelpProviderImplementation but found 0. part definition Microsoft.CodeAnalysis.ExternalAccess.Pythia.PythiaSignatureHelpProvider Microsoft.CodeAnalysis.ExternalAccess.Copilot.Internal.CodeMapper.CSharpMapCodeService.ctor(service): expected exactly 1 export matching constraints: Contract name: Microsoft.CodeAnalysis.ExternalAccess.Copilot.CodeMapper.ICSharpCopilotMapCodeService TypeIdentityName: Microsoft.CodeAnalysis.ExternalAccess.Copilot.CodeMapper.ICSharpCopilotMapCodeService but found 0. part definition Microsoft.CodeAnalysis.ExternalAccess.Copilot.Internal.CodeMapper.CSharpMapCodeService Microsoft.VisualStudio.Composition.CompositionFailedException: Errors exist in the composition. at Microsoft.VisualStudio.Composition.CompositionConfiguration.ThrowOnErrors() at Microsoft.CodeAnalysis.Remote.ExportProviderBuilder.CheckForAndReportCompositionErrors(CompositionConfiguration configuration, ComposableCatalog catalog) in /_/src/Workspaces/Remote/Core/ExportProviderBuilder.cs:line 208 2025-10-09 13:59:04.346 [info] [stdout] {"pipeName":"/tmp/ce1f17e8.sock"} 2025-10-09 13:59:04.347 [info] received named pipe information from server 2025-10-09 13:59:04.347 [info] client has connected to server 2025-10-09 13:59:04.441 [info] [Program] Language server initialized 2025-10-09 13:59:05.575 [info] [textDocument/_vs_getProjectContexts] [Microsoft.CodeAnalysis.LanguageServer.DotnetCliHelper] Using dotnet executable configured on the PATH 2025-10-09 13:59:05.723 [info] [textDocument/_vs_getProjectContexts] [Microsoft.CodeAnalysis.LanguageServer.FileBasedPrograms.FileBasedProgramsProjectSystem] Failed to obtain virtual project for '/home/shinzo/Code/CS/GameStore/src/GameStore.API/Repositories/UnitOfWork.cs' using dotnet run-api. Falling back to directly creating the virtual project. 2025-10-09 13:59:06.049 [info] [textDocument/_vs_getProjectContexts] [Microsoft.CodeAnalysis.MSBuild.BuildHostProcessMan
想请教的问题:
从日志看核心是MEF组合时找不到一些必要的导出项,比如JoinableTaskContext这些,有没有朋友碰到过类似的问题?尤其是在Arch Linux环境下,有没有针对性的解决办法?比如是不是扩展版本和.NET版本不兼容?或者需要清理什么缓存?另外日志里提到的虚拟项目创建失败会不会和智能提示失效有关?




