dotnet / dotnet/msbuild

[Feature Request]: MSBuild Server Identifier

Open
#9,692 11 comments 1 reaction 1 assignee Claimed by @JanProvaznik View on GitHub
Area: Server Feature Request needs-investigation
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 13h
Merged PRs (30d)
133

Description

### Summary

Server reuse across clones, can lead to issues when Shutdown, leading to errors.

### Background and Motivation

When having multiple Clones of the same repository using MSBuild Server for speeding up compilation, we end up in situations where the MSBuild Server gets shutdown from the other clone, while a compilation is ongoing, resulting in errors because of Server Shutdown.

Our setup:
- Each clone have its own copy of MSBuild copied into it, and execute MSBuild Server.

### Proposed Feature

Add an Identifier to the started server + nodes started by the server, so repositories can't interfere with each other.
It would be optimal if:
- The Identifier could be passed as an argument or a new env var `SharedId`
- The Identifier would be additive to the current `CommunicationsUtilities.GetHandshakeOptions` so it would work as today if no extra identifier was added.
- Add the public api to `MSBuildClient` to support MSBuild Server Identifier.
- Possible to use the same `SharedId` to pass to Roslyn's similar concept `SharedCompilationId`

This would make it easier to control multiple msbuild servers that can't interfere with eachother.

### Alternative Designs

The MSBuild Server is identified with the location, so if we have two copies of MSBuild, each would have a unique identity and MSBuild Server + Nodes.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.