Skip to content

MEF composition errors during C# extension startup #8695

@swythan

Description

@swythan

Issue Description

The latest C# extension (12.93.22`) is logging several MEF composition errors at startup for me (and at least one of my colleagues).

Downgrading to 2.90.60 fixes it.

2025-10-13 09:15:37.003 [info] [stdout] fail: Microsoft.CodeAnalysis.Remote.ExportProviderBuilder[0]
      Encountered errors in the MEF composition:
      ----- CompositionError level 1 ------
      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.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.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.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.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.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.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

Environment data

dotnet --info output:

.NET SDK:
 Version:           9.0.110
 Commit:            999243871a
 Workload version:  9.0.100-manifests.3277c30b
 MSBuild version:   17.12.44+999243871

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  24.04
 OS Platform: Linux
 RID:         ubuntu.24.04-x64
 Base Path:   /usr/lib/dotnet/sdk/9.0.110/

.NET workloads installed:
There are no installed workloads to display.
Configured to use loose manifests when installing new manifests.

Host:
  Version:      9.0.9
  Architecture: x64
  Commit:       999243871a

.NET SDKs installed:
  8.0.119 [/usr/lib/dotnet/sdk]
  9.0.110 [/usr/lib/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.19 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 9.0.9 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.19 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 9.0.9 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/usr/share/dotnet]

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

VS Code version: 1.104.1
C# Extension version: 2.93.22

C# logs

C# output window contents:

2025-10-13 09:15:33.931 [info] Locating .NET runtime version 9.0.1
2025-10-13 09:15:34.077 [info] Dotnet path: /usr/lib/dotnet/dotnet
2025-10-13 09:15:34.077 [info] Activating C# + C# Dev Kit...
2025-10-13 09:15:34.533 [info] [stdout] info: Program[0]
      Server started with process ID 707470

2025-10-13 09:15:37.003 [info] [stdout] fail: Microsoft.CodeAnalysis.Remote.ExportProviderBuilder[0]
      Encountered errors in the MEF composition:
      ----- CompositionError level 1 ------
      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.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.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.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.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.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.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-13 09:15:37.896 [info] [stdout] {"pipeName":"/tmp/4de08c8e.sock"}

2025-10-13 09:15:37.896 [info] received named pipe information from server
2025-10-13 09:15:37.897 [info] client has connected to server
2025-10-13 09:15:38.317 [info] [Program] Language server initialized
2025-10-13 09:15:42.312 [info] [serviceBroker/connect] [WorkspaceProjectFactoryService] Project /persist/code/OpenTsdb-ReadProxy/src/TsdbQueryParser/TsdbQueryParser.csproj loaded by C# Dev Kit
2025-10-13 09:15:42.888 [info] [serviceBroker/connect] [WorkspaceProjectFactoryService] Project /persist/code/OpenTsdb-ReadProxy/src/TsdbReadProxy/TsdbReadProxy.csproj loaded by C# Dev Kit
2025-10-13 09:15:42.896 [info] [serviceBroker/connect] [WorkspaceProjectFactoryService] Project /persist/code/OpenTsdb-ReadProxy/tests/TsdbQueryParser.Test/TsdbQueryParser.Test.csproj loaded by C# Dev Kit

See this page for collecting more detailed logs

Steps to reproduce

  1. Update C# and C# Dev Kit to latest
  2. Open a .NET solution
  3. See error in C# extension logs

Expected behavior

The extension should start cleanly.

Actual behavior

I get the following errors shown above.

Additional context

  • I'm using VS Code in Remote (SSH) mode.
  • Neither the remote or local side has internet access (apart from a constrained set of URLs for browsing/downloading extensions).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions