-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use all MSBuild binding redirects in NuGet.Frameworks AppDomain #9634
Conversation
Btw. the original change was not inserted into 17.9 - correct? (just trying to see if this will need backporting) |
Correct, the regression is only in 17.10/main. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
Though to me it is very advanced feature taking nontrivial efforts to understand - it definitely deserves more hints - I'd at least put the https://github.com/dotnet/msbuild/blob/main/documentation/NETFramework-NGEN.md#nugetframeworks in the comment of GenerateAppDomainConfig
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My instinct is to go forward with this and keep an eye out for other regressions. I agree that given where we are in the 17.10 cycle we have time to react if we do notice any (that overpower the gain in JIT).
Co-authored-by: Rainer Sigwald <raines@microsoft.com>
Context
The secondary AppDomain hosting
NuGet.Frameworks
was set up with a binding redirect forMicrosoft.Build
but not its dependencies. Additionally,MSBuild.exe
loader policy was set toMultiDomainHost
, making it possible to share only Framework assemblies between AppDomains, but still loading MSBuild assemblies domain specific. These issues were resulting in NGEN rejections at run-time.Changes Made
Made the
GenerateAppDomainConfig
target use all binding redirects fromMSBuild.exe.config
and switched toMultiDomain
loader policy. Also pluralized the relevant identifiers (redirect -> redirects).Testing
Experimental VS insertion with PerfDDRITs & Speedometer runs.