It is fairly unwise, the CLR cannot find the DLL without help. Your customer won't care much about the location of the DLL. In fact, I think most IT staff prefer binaries in the same directory.
If you put the DLL in a c:\app\bin\dll subdirectory then you can use an app.exe.config file with the <probing>
element to tell the CLR to look in that directory. Deploying to c:\app\dll is much harder, it requires a very unpractical <codeBase>
in a <dependentAssembly>
. Which makes the app unmovable, prefer Pierre's solution instead. Except that it needs work, you want to use Assembly.GetEntryAssembly().Location to get the install path of the EXE do that you can generate a relative path off that.