I have an application that has been in production for a few years and has its first user with an X64 machine. My developmnet machine is x64 and I have worked out all of my developmnet issues.
The application is built in Visual Studio 2008. It has a variety of DLLs. About 20 of these dlls each contain a winform and a Crystal Report. These dlls are "FieldTests" (fieldtest_a.dll, fieldtest_b.dll, etc.). Each of these dlls depends on a single dll called "FieldTestBaseClasses.dll". There are a number of other dlls in the app containing business logic and then the main UI which is an winform EXE application.
When trying to open reports, the X64 user gets the familiar message: "An error has occurred while attempting to load the Crystal Reports runtime. Either the Crystal Reports registry key permissions are insufficient, or the Crystal Reports runtime is not installed correctly. Please install the appropriate Crystal Reports redistributable (CRRedist*.msi) containing the correct version of the Crystal Reports runtime (x86, x64, or Itanium) required."
I know about this problem and have solved it in the past by just changing the application's target CPU to x86. However, this app has about 30 assemblies and I have done this but it doesn't solve the problem.
I have spent 2 days experimenting with this and have come to teh conclusion that all of the assemblies in the application must target the same CPU. However, if my main exe targets x86, it renders my manifest invalid and I can't install the application.
I have rolleld everyting back so that everything in the app works except for running the crystal reports. Luckily, this still functions properly on teh x86 machines.
I need a way to solve this without messing up the rest of the application. My client is very unhappy and has asked me if there is another reporting tool I can use.
Any guidance you can give me would be much appreciated.