Currently, we have an application that has worked quite well with multiple crystal engines installed. A client can have a report that exports as they expect in say Crystal Reports 10 and also create new reports against Crystal Reports 11 (or Release 2). The client specifies (within a table in the our DB) which version of crystal to use with a given report and we have a report engine factory that returns the appropriate crystal engine to use for processing the report.
Now the problem...
I recently brought down the trial version of Crystal Reports 2008 and have attempted to create a .NET factory to deliver this report engine. If I only have Crystal Reports 2008 accessed from our application, it will work as expected (for the most part - some features from the RDC no longer exist - but that is another story). As soon as I attempt to run a report that requires a different crystal engine, the next engine in always fails.
For example, if I run a Crystal 11 report after a successful Crystal 2008 report I will receive an "Invalid TLV record" error during the call of the "OpenReport" method. At first I thought this was a possible bug in my code, but if I do the opposite (run the Crystal 11 report first then Crystal 2008), the Crystal 11 report will work without problems and then a Crystal 2008 report I will receive the error "Retrieiving the COM class factory for component with CLSID XXX failed due to the following error: 80000003" during the "OpenReport" method.
Has anyone else experience this problem? If so, is there a way to work around it?
Thanks in advance any help you can provide,