dotnet / dotnet/msbuild

Rationalize how MSBuild loads NuGet.Frameworks.dll (esp. in bootstrap)

Open
#6,302 0 comments 0 reactions 0 assignees View on GitHub
needs-design triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 13h
Merged PRs (30d)
133

Description

We've had a break https://github.com/dotnet/msbuild/issues/6289 that was fixed with https://github.com/dotnet/msbuild/pull/6301.

However long term I'd like to rationalize the following:
1. why are we dynamically loading the assembly there in the first place? Is this the right thing to do?
2. can we more closely replicate what happens in the actual production VS? Since NuGet.Frameworks.dll there is loaded from a single location (not next to MSBuild.exe), but in bootstrap it is deployed to two separate locations and loaded from both, which seems fragile and caused the above issue.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the failure in issue 6289 and the fix in pull request 6301, then trace how the bootstrap loads NuGet.Frameworks.dll relative to MSBuild.exe. Done means deciding whether dynamic loading is needed and aligning bootstrap deployment and loading with production Visual Studio's single assembly location.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.