I have a C# solution that I am using dependency injection to resolve references between dlls. I have an exe project and some other dll projects that are not referenced by the exe (It uses the dlls through the IoC container). The project settings are the default, visual studio settings where it builds each dll in it's own folder. Since the exe doesn't reference the dlls, they never get copied to the output directory of the exe and don't get found by the IoC framework.
How do you handle this? Do you build them all in the same directory? Use post build copy commands? Or something else?
Use post build copy commands or change output directory for all projects to common directory
I typically handle this by using a post-build copy command (using Build Events, so they're automatic) that puts the dependency assemblies into a shared folder.
I then make sure this folder is included in my IoC container's search path, so they get found.
Another, similar option, is to use a build event on your main application project. It can then copy the dependencies into an appropriate folder. This has the advantage of allowing different dependencies to be used for different applications within the same solution, while still being easy to maintain.
I would (and did) use post build copy commands. Create a .BAT file that makes all the necessary copies, attach it to the post-build event and you're done.