Article ID: 327435 - View products that this article applies to.
This article was previously published under Q327435
This article has been archived. It is offered "as is" and will no longer be updated.
You can call the Assembly.LoadFrom() method on an assembly that invokes a method from a dependent assembly. If the method is located in the same directory, you may see one of the following exceptions:
Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
System.IO.FileNotFoundException: File or assembly name assembly, or one of its dependencies, was not found
This occurs when the assembly that you load is in a directory of the same name as the assembly, and the calling application is in a different directory.
When you dynamically load an assembly with Assembly.LoadFrom() from a directory with the same name as the assembly (for example, MyAssembly.dll is located in the directory that is named MyAssembly), the assembly is loaded in the Load context instead of the LoadFrom context. The dependent assemblies are not loaded.
Rename the directory where the assembly is loaded from and where its dependents are located. A directory with a different name causes the assembly to load in the LoadFrom context. The dependents of the assembly are loaded also.
For example, instead of locating MyAssembly.dll and its dependent assembly (DepAssembly.dll) in the directory that is named MyAssembly, put them in a directory that is named MyAssemblyDir.
Steps to Reproduce the Behavior
For more information about Assembly.LoadFrom(), visit the following Microsoft Web site:
Assembly.LoadFrom MethodFor more information about the .NET runtime and how it locates assemblies, visit the following Microsoft Web site:
How the Runtime Locates Assemblies