| I had a user of PBDelta who was using a different build
of the PowerBuilder runtime/VM for their development than I was using in
my deployment/distribution of PBDelta. This was causing the
customer problems as they would get errors in either their development
environment or in PBDelta depending on which application was started
first.
It looked like Windows was seeing it had a copy of the DLL's in memory
already and was sharing the DLL files between the two apps.
I've put together simple windows manifest files in the past and
I thought there was a way of creating a manifest file such that Windows
would load the two different sets of DLL files and link them separately
to each application. I started trawling around the net and msdn looking
for details of what the manifest should look like when I came across
this article on MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/dynamic_link_library_redirection.asp
There is a nifty feature that lets you tell windows that the
application in this folder needs to use the DLL files in this folder and
not from any other location. So all we did was create an empty file
called pbdelta5a.exe.local in the PBDelta application folder and it
solved the problem.
If you need to deploy two applications with the same DLL names but
different versions you can use this neat feature to ensure there are no strange
incompatibility problems between the applications. |