Crystal 2008 runtime backward compatibility
I am in need of a little help. I am looking for a listing of what crystal runtime versions are supported running on the same client workstation. I have a .NET app that uses Crystal 2008, during testing I placed my App on a Client machine that uses another App that uses Crystal 7.
I am getting an error when running my App that uses CR 2008, error saying that runtime cannot find my u2lcom.dll.
I find that the Crystal 7 runtime places a copy of the u2lcom.dll in the System folder and that if I rename this file, my App with CR 2008 runs fine, but the old App that uses CR 7 does not.
Are these runtimes not meant to run on the same machine?
I would appreciate any help on this.
Thank you in advance.
Don Williams replied
And to add to Jonathans notes in CR 7 most of our runtime was in a folder called \windows\crystal. Back then there wasn't much control over where developers could put the runtime. Some took the easy route and simply copied them all into the \windows\system32 folder. Not a good practice as you have discovered.
The way CR looks for the runtime is beginning in the Icon's working folder, then in the \system32 folder then down the PATH statement. By moving them all to the applications folder they are sure to be found by the hosting application. This include crpe32.dll which we put into the \system32 folder, move it to the app's folder also.
And because CR 7 did not support side by side it's also recommended that you put in version checking to make sure the correct version of crpe32.dll is being loaded. May be too late for the CR 7 app to do this so it may have problems.
Also, u2lcom.dll is the bridge dll that allows custom COM UFL's ( VB UFL - crufl*.dll ) connect to CR.