We have the following situation/requirements:
- We have multiple projects which use the same DLLs (which we developed).
- Different projects shall be able to use different versions of those DLLs
- The applications within one project shall all use the same version
- It shall be possible to update the DLLs of a single project so all applications in that project are affected. Other projects shall not be affected.
- Each application shall have their own directory
This leads to the following desired folder structure:
SomePath
|- SomeProject
| |- DLL
| |- Application1
| \- Application2
|
\- OtherProject
|- DLL
\- ...
In order to allow different projects to use different versions, registering them in the GAC is not possible (is it?). Using the probing private path solution is not possible either, as that approach only supports subdirectories, not parent folders.
As I understand it, the Assembly.LoadFrom
could work but would mean replacing each new
call of types in those libraries by reflection calls (or not?), which would mean a lot of work.
Is there a way to reference the DLLs as specified without having to use reflections? I.e. specify a relative include path to a parent folder.
Hint: Development machine is Windows 8.1, VS 2013; Target machine is Windows 8.1