Regarding the first part of the question: it works. I refer to this answer , it is written here in sufficient detail.
Regarding the second part of the question, if all assemblies are loaded via Assembly.Load , then there is no difference.
If, for example, assembly A is loaded via LoadFrom , then if another assembly with the same name A is loaded via Load (or is there any dependency on another assembly loading via Load ), then there may be problems with the fact that the assembly will not found, or unexpected InvalidCastException 's, or simply already loaded version of the assembly will be issued instead of the necessary one. Or if an assembly with the same name A was loaded earlier through Load , an already loaded assembly can be returned. In this case, the boot order matters.
Information taken here: Suzanne Cook, Choosing a Binding Context and here: Best Practices for Assembly Loading .