dotnet / dotnet/roslyn

MSBuildWorkspace should load projects in parallel

Open
#84,115 0 comments 2 reactions 0 assignees View on GitHub
Area-IDE
Dominant language
C#
Stars
20.7k
Forks
4.3k
PR merge metrics
PR metrics pending

Description

We updated the BuildHost to support parallel MSBuild invocations so the C# LSP server could load projects in parallel, but MSBuildWorkspace still needs the same treatment. We need to either:

1. Figure out what parts of the MSBuildWorkspace code would need to be made thread safe.
2. Just rip out the code that does the build host to workspace state and reuse the code already in the LSP server for that. That would get us closer to also supporting reloading and similar needs we've long had.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how BuildHost, MSBuildWorkspace, and the C# LSP server currently handle project loading and workspace state. Determine whether MSBuildWorkspace can safely support parallel MSBuild invocations or should reuse the LSP server's existing implementation. Done means selecting and implementing an approach that enables parallel project loading without unsafe shared state.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system, developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.