Skip to content

Conversation

@AndriySvyryd
Copy link
Member

@AndriySvyryd AndriySvyryd commented Nov 8, 2025

Fixes #36970

Description

Microsoft.CodeAnalysis.Workspaces.MSBuild requires BuildHost to be available in the output folder for projects that copy dependencies to the output folder. The previous fix removed contentFiles from PrivateAssets of the Microsoft.CodeAnalysis.Workspaces.MSBuild reference to achieve this, however it has a side effect of also copying BuildHost to the publish folder. A more targeted fix is to copy over BuildHost to output folder only when needed.

Microsoft.CodeAnalysis.Workspaces.MSBuild 5.0.0 needs to be referenced as it contains a fix to load BuildHost from the NuGet cache in cases where dependencies aren't copied to the output folder. Most of the changes are in test baselines caused by slight differences in the code produced by Microsoft.CodeAnalysis.*

Customer impact

For project referencing Microsoft.EntityFrameworkCore.Design (the vast majority of projects using EF) BuildHost folders appear in the solution and get copied to the publish folder, significantly increasing the total size. The workaround is to delete them or to add contentFiles to PrivateAssets for projects that don't use BuildHost.

How found

Customer reported on 10.0.0-rc2.

Regression

Yes, from 10.0.0-rc1. Introduced in #36708

Testing

Validated the fix manually by using EF tools on a variety of projects:

  • library, executable
  • referencing M.EFC.Design as a development dependency and referencing M.EFC.Design normally

Risk

Low, only design-time tools are affected by the change.

@AndriySvyryd AndriySvyryd requested review from a team and cincuranet as code owners November 8, 2025 01:03
@AndriySvyryd AndriySvyryd changed the title [release/10.0] Copy BuildHost manually instead of referencing contentFiles from Microsoft.CodeAnalysis.Workspaces.MSBuild [release/10.0] Copy BuildHost instead of using contentFiles from Microsoft.CodeAnalysis.Workspaces.MSBuild Nov 8, 2025
@AndriySvyryd AndriySvyryd force-pushed the Issue36970 branch 2 times, most recently from 6c0b0aa to 6faf008 Compare November 12, 2025 16:49
@ViktorHofer
Copy link
Member

@AndriySvyryd code complete for 10.0.101 was two days ago but we don't have a final build. If this absolutely must to go into 101, please send out a mail to Tactics asap.

@SamMonoRT
Copy link
Member

@AndriySvyryd code complete for 10.0.101 was two days ago but we don't have a final build. If this absolutely must to go into 101, please send out a mail to Tactics asap.

This is not needed for 10.0.101 - can go into the next servicing release

@AndriySvyryd AndriySvyryd force-pushed the Issue36970 branch 2 times, most recently from c11a063 to 4ded0cf Compare November 19, 2025 14:11
@SamMonoRT
Copy link
Member

cc @artl93 - this is ready for your approval prior to Tactics

@artl93
Copy link
Member

artl93 commented Nov 20, 2025

@AndriySvyryd - the change is very large. If it's targeted, why is it this large? What validation has been done to assure that we've got this nailed?

@AndriySvyryd
Copy link
Member Author

Most of the changes are in test baselines caused by the upgrade of Microsoft.CodeAnalysis.*. I can separate that into a different PR to make it easier to review.
I validated the fix by using ef tools on a variety of projects: library, executable, referencing M.EFC.Design as a development dependency and referencing M.EFC.Design normally

Copy link
Member

@artl93 artl93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. Understood about why the change is so big. When you send the mail to tactics, definitely include the variety of things tested. If we have to take this all in one shot anyway to have a complete fix, breaking this up doesn't help much.

Based on scenario, coverage, regression, customer-reported, I approve. Make sure the customer scenario (what the customer does and sees) is clear when submitting to tactics. Why the build host folder appears in the output folder as being a problem I don't think will be apparent to the reviewers. The screenshot in the original issue does a pretty good job - consider including that.

@AndriySvyryd AndriySvyryd merged commit 243f780 into release/10.0 Nov 21, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants