-
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
Stop checking .ni.dll/exe on Core #6663
Conversation
We believe these were remnants of old pre-crossgen file naming patterns that haven't been used in a very long time. Removing the checks to avoid filesystem activity on files that almost certainly will not exist. Fixes dotnet#5042.
I believe that crossgen still creates .ni.dll files. At least I remember getting them when I invoked the tool a few months back. @vitek-karas is it a valid scenario to crossgen an assembly, delete the .dll, and assembly-load the .ni.dll? |
I guess the relevant question here is "is there a supported plugin scenario where we should be explicitly loading a I don't see any |
I personally haven't seen
|
For .ni.dll, Crossgen2 doesn't automatically force this naming scheme as early in Crossgen2 development @jkotas explicitly suggested we should drop the ".ni" naming scheme for end customers and only maintain it for internal testing. In addition to our various test build scripts that still expect the .ni bit it turns out that the DiaSymReader PDB processing library contains hard-coded bits checking for the .ni extension, @davidwrighton had to provide special hacks to make it work in Crossgen2 / R2RDump context. The biggest thing I'm aware of right now is the naming overlap between the IL PDB (these days probably a modern managed PDB right out of @tmat's factory) and the native (Crossgen2) legacy Windows-style PDB used to propagate method addresses to PerfView. I'm not yet aware of any known plan to overcome this dichotomy but I guess we should figure one out for .NET 7. |
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.
The native PDB problem is separate issue. It should not block this cleanup from being merged.
.NET Core can sometimes use .exe extensions but in that case the file is not a managed assembly any more and thus can't be loaded by our plugin loader.
We believe these were remnants of old pre-crossgen file naming patterns that haven't been used in a very long time.
Removing the checks to avoid filesystem activity on files that almost certainly will not exist.
Fixes #5042.