C# load DLL from different folder?

c#-4.0, directory, dll, reference, visual-studio-2010

Solution

Use `System.Reflection.Assembly.LoadFrom(path)`.

`LoadFrom` will allow it to look in the same folder as the targetted dll for any dependencies. If you use `Load`, then it will not consider dlls that are sitting in the same folder as the dll you Load.

I know this doesn't directly answer your question, but manually calling `LoadFrom` on the DLLs early in your process startup should do the trick if you want an "xcopy" installable .net app or something.

Problem

I have a C# project that contains 1 EXE and about 7 DLLs. What I would like to have is a folder beside the EXE called "Library" (or something similar) that contains all the DLLs so that it is a bit more organized and looks better for the end user. I know this can be done using an AppConfig but the I don't want another file beside the EXE. All I want is the main EXE and the folder. Is it possible to use AppConfig and embed it or load the DLLs without using a AppConfig that won't change how I currently use my DLLs? I know you can load a DLL at run time but I don't think that is what I am looking for. Thanks! EDIT I know the pros and cons to doing this, so please only answers on how to do this and no advice as to why I should or should not do this.

Original source