When our C# app is missing a dependency it reports this “module could not be found” error dialog. Unfortunately this dialog does not include the name of the file it could not find. In this case the missing dependency was a DirectX dll D3DCompiler_43.dll. If a customer reports “module could not be found” it’s not very helpful, but if they reported the name of the file not found it gives us at least a clue.
Can we catch this exception and produce an error dialog which includes the name of the file that wasn’t found? Since it happens early in application startup (before main I believe) how can we do this?

I don’t think you can do this programmatically. However, if you have access to the machine you can turn on a “global flag” to show what’s called “Loader Snaps” (Show loader snaps (Windows Debuggers)) at least to identify the problem.
Here is an article about it that explains how to do it: Debugging LoadLibrary Failures