Can I catch a missing dll error during application load in C#?
.net, c#, dll
Solution
Extending Josh's answer.
Assemblies in .Net are loaded on demand by the CLR. Typically an assembly load won't be attempted until a method is JIT'd which uses a type from that assembly.
If you can't catch the assembly load failure with a try/catch block in the main method, it's likely beceause you're using a type from the assembly within the try/catch. So the exception occurs before the main method is actually run.
Try putting all of the code from the main method in a different function. Then call that function within the try/catch block and you should see the exception.
Problem
Is it possible to catch the exception when a referenced .dll cannot be found? For example, I have a C# project with a reference to a third-party dll; if that dll cannot be found, an exception is thrown. The exception is a System.IO.FileNotFoundException, but I am unable to determine where to catch it. The following code did not seem to work: ``` static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { try { // code goes here } catch (Exception exc) { MessageBox.Show(exc.ToString()); } } } ```