The corporate programs (VB6) of my company use a shared .dll that is hosted on a c: \ DLLS path and registered with regsvr32. The repository with the latest versions is on a server.
This allows that any improvement or revision of these .dll (generated with VB6 and Binary Compatibility) can be "distributed" automatically as the teams periodically check the local files with those of the repository and with "download" the file is enough . Note that it is not necessary to re-register it with regsrv32).
I want to replicate that behavior with VB.Net x64 and I do not get it.
I have tried to register it in the GAC but that does not work for me since once the DLL is registered, the directory is no longer needed, since Windows searches it. Therefore, overwriting processes do not work for me since they would require re-registering with gacutil.
I have created two compatible and interchangeable dlls. That I copy in the directory "local repository" without distinction.
In the exe prototype, the reference with path and works correctly IF AND ONLY IF I define it as Local Copy = True, with which it replicates the C: \ DLLS library to its bin directory.
In this case, swapping the dll of the bin directory is transparent to the compiled application that uses one or another version.
If, when referencing the DLL, I change the property Local Copy = False, although at the development level it appears well referenced and there are no problems when compiling it generates an IOException because it can not find the file.
I have tried to add the path "C: / DLLS" to "Reference access paths ..." but I do not solve the problem either.
I reject having n copies of the same DLL in each of the directories of my n applications.
Is there no type of manifest that tells the executable to look for the DLLs in a directory external to the application?