Skip to content

Conversation

@rainersigwald
Copy link
Member

An internal tool recently had trouble updating to .NET 10 because
it deployed a stale local copy of Microsoft.NET.StringTools.dll that
was working (by coincidence) throughout .NET 9 but failed after
dotnet/msbuild#12100 added some API surface to StringTools and used it.

Partial fix for #353.

An internal tool recently had trouble updating to .NET 10 because
it deployed a stale local copy of `Microsoft.NET.StringTools.dll` that
was working (by coincidence) throughout .NET 9 but failed after
dotnet/msbuild#12100 added some API surface to StringTools and used it.
'%(PackageReference.Identity)' == 'Microsoft.Build.Engine'
'%(PackageReference.Identity)' == 'Microsoft.Build.Engine' or
'%(PackageReference.Identity)' == 'Microsoft.NET.StringTools' or
'%(PackageReference.Identity)' == 'NuGet.Frameworks'
Copy link
Member

Choose a reason for hiding this comment

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

Curious: any way that you could think of to write a test that captures the list of "do not deploy DLLs"? Struggled with this in Roslyn a few times. Eventually we found a few tests we could write where we maintained a string[] in the test of dependencies, when the test failed there was a comment of "if you update this list, go update this other file". It was far far from perfect but was an easy spot check for us.

Not sure if that is easy / not here.

Copy link
Member Author

Choose a reason for hiding this comment

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

I can't think of a particularly good way, unfortunately. This list is definitely not complete, but I'm not 100% sure how complete it can be without causing problems for users. Like, can we put System.Collections.Immutable on here? Ideally we would!

@rainersigwald rainersigwald self-assigned this Nov 4, 2025
@YuliiaKovalova YuliiaKovalova merged commit 46a3b93 into microsoft:main Nov 6, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants