Did logic for selecting assemblies for UnusedByteCodeStripper2 and il2cpp change?

Project that went from 5.0.1f1 to 5.1.0p1.

Looking at the unity log during build, it appears that most of the managed dlls are NOT being included now in the UnusedByteCodeStripper2 and il2cpp command line calls. The only ones that ARE include Assembly-CSharp-firstpass.dll and Assembly-CSharp.dll. The rest of my plugin DLLs (confirmed they are in the Temp/StagingArea/Data/Managed/ directory) are NOT being picked up.

Did something change?
Is there any logic that would cause them NOT to be picked up?

As far as what it is causing - I’m not sure…running into the old "Method not found: 'Default constructor not found … ctor () of… " issue and trying to narrow down the possibilities.

Any help would be appreciated.

So delving down deep into this, some aspect of the ‘default’ stripping that il2cpp linker uses (regardless if you have stripping level set to 'none) has changed between 5.0.1f1 and 5.1.X. Now, a DLL assembly that we include in our project has seemingly ‘unused’ types (or even just fields and methods) stripped - causing later use to fail miserably when using reflection and/or CreateInstance. Yikes. Had to fall back on Link.xml file and list all our assembly packages (never could get wildcards to work in that thing!). That was many hours I will never get back. Why does it strip if I tell it not to strip?