Does merging assemblies change the scope of the internal keyword?
I’m fairly certain that it wouldn’t have an effect (or at least one that would matter) since anyone referencing the final assembly wouldn’t be able to access internal classes anyway.
This might be a hypothetical question with no real world value, but I was curious nontheless.
Edit: I do mean with ILMerge, not combining source code into a single buildable assembly.
Yes once the assemblies are merged, they get access to each others internal classes. This is specifically leveraged by some obfuscators to make public calls between assemblies into internal calls and then obfuscate them making it more secure. Reference: SmartAssembly
On a side note, using ILMerge, you can use the /internalize command line switch which will make all public classes in assemblies other than the primary assembly internal, which removes public interfaces from the end-user’s eye but still the assemblies function normally.