Crystal Reports Printcontrol Dll Failed To Register

1 view
Skip to first unread message
Message has been deleted

Sofie Kovalcheck

unread,
Jul 12, 2024, 10:10:05 PM7/12/24
to chcomcicneinor

When trying to distribute applications written in .net using CR2008, the runtime gives an error on 1/3 of the machines I try it on. This includes Windows XP and Vista. From my observations, it seems to only happen on freshly installed machines OR machines where older versions of Crystal have NOT been installed before (but I may be wrong). I have tried the MSI package, the compact EXE package, and also the merge modules. They all give the same error. It has happened on alot of machines not just one.

I eventually found the problem. I used depends to trace the printcontrol.dll and found that it requires msvcr71.dll to be installed in the system folder. This is a Visual C++ 7.1 (.net 2003) library. It looks like Business Objects forgot to put this into their runtime installer. That is why it works on some computers and not others. Some computers have this dll file installed as part of other software (including other crystal reports versions). I created a patch installer that basically drops this dll file into the system folder. Once that is done, then the runtime installs correctly.

crystal reports printcontrol dll failed to register


Download Zip https://urluso.com/2yMHC9



This forum is dedicated to topics related to custom application development or deployment with Crystal Reports in .Net. This includes full versions of Crystal Reports as well as those versions of Crystal Reports bundled with Microsoft Visual Studio .Net.

Don: So you are saying that in order to make your software install correctly, you would have to break certification? Then please explain why the original runtime installer worked? The one before SP0. As I remember that one worked perfectly, it is just that 70% of our reports written in XI R2 would not run (various errors) until SP0 -- when we have the install issue (but our reports are running now).

If you run the runtime package manually (by double clicking on it) you get the same error but have the option to "ignore it" and continue. However, this error boms our software installer out competely and wont allow our software to install. This means a loss of revenue if the client downloads a demo from our website and does not read our notice about Crystal bugs and to download the patch first.

Paul: The first report out senerio was a problem with XI as well. You can solve this by adding a dummy report (or real one) to your project. Create a new thread and execute the report in the background on the new thread. The user will never notice the difference as the application will start quickly. By the time they actually run a report the Crystal has already been started and it runs at normal speed.

Just be careful not to allow your user to exit the application (main thread) until the background thread has completed, else you will get a runtime error. I just block the exit until after the second thread has set a variable that it completed.

I had the same register failure but fixed it by modifying the "CRRuntime_12_0.msm" merge module. The merge module already contains the msvcr71.dll. However it installs this file in "C:\Program Files\Business Objects\BusinessObjects Enterprise 12.0\win32_x86" directory.

Using a merge module editor (Wise for Windows Installer), I changed the install location of this file to the "c:\Windows\System32" directory. After recreating the installer using the modified merge module, it installed successfully.

At Ludek's request I had a look at this issue. It looks like we've change the dependency list for printcontrol.dll with the release of Service Pack 1 for Crystal Reports 2008. The printcontrol.dll (version 12.1.0.882) is no longer dependent on the msvcr71.dll library file.

I originally posted this on BO's forum in March 2008 with the solution. Using depends, you find that printcontrol.dll will not register without msvcr71.dll being in the System32 directory. This dll is VS 2003 .net 7.1 C++ runtime library.

This issue has occurred before SP0, and unfortunately still occurs after SP1. I truely was excited about the release of SP1 as this would solve all the problems we have been having with our solutions deployment.

FOR THE RECORD, THIS ISSUE WILL OCCUR ON ALL BRAND NEW WINDOWS INSTALLATIONS (FRESHLY INSTALLED FROM THE WINDOWS CD). IT ALSO OCCURS ON COMPUTERS WHERE SOFTWARE LIKE OTHER CRYSTAL VERSIONS, ETC, THAT INSTALL THIS DLL ARE NOT PRESENT.

We have been developing on Crystal since version 8. Crystal 2008 is very disappointing. I have lost numerous clients due to this issue that can't install our software due to this error. We have tried to use the merge modules but get the exact same error. THIS HAS BEEN GOING ON FOR 6 MONTHS NOW - YOU WOULD THINK THAT SOMEONE AT BUSINESS OBJECTS WOULD DO SOMETHING LIKE FIX IT!

Thank you for the updates and work arounds. I agree this is an issue with our Merge Modules. As you noticed it is a simple matter of the install process, registering our dll's with dependencies on MS's MSV's is something we have become more and more dependant on. On install, since our folder structure does not exist, we can't find them even if we have them in our \bin or x86 folder.

I'll log this issue with our build team so they are aware, not sure if we can put them into the \system32 folder, I believe it breaks MS Certification policy. But the Build team will discuss to see if the install process can be cleaned up.

I also suggest once the install has completed you move those 2 files into our \bin or x86 folder and delete them from the \system32 folder so they are where we can find them and your installer doesn't break certification policies.

If you are seeing a slow load on the first report only, that is something that is known. Explanation is that there is a large number of dlls and assemblies (assuming you are using .NET) before a report can be processed. The only way to cut this down, is to eat the dll and assembly load time on app start. E.G.; now your app will take 20 seconds longer to start.

Re. OLD BD provider. Something I have never ever done, nor do I want to start doing is pointing fingers at another product as being the cause of an issue. But if I understand the reasoning behind OLE DB (e.g.; it's a standard by which to connect to a database), and the standard is followed, there should not be any issues. On the other hand, I would not let Crystal reports off the hook too easily either. But I suppose the fist place to start would be a contact with Pervasive and see if they know anything about issues with their OLD DB stuff. Perhaps they even have a new / updated provider... If Pervasive is not able to help, I'd suggest coming back to here, create a new post, reference this thread and we'll start to troubleshoot from there. If you do decide to go that route, let me know the version and name of the actual provider (e.g.; Pervasive sql v9 ole db provider) as well as the version of Pervasive you are using.

Also search the Notes section here. There are multiple reasons why it fails and mostly due to some outdated dependency dll. Make a note of all the files that failed to register and then register them manually using the command line: regsvr32 "path to the missing dll in double quotes"

Property: = true Property: = Intel Property: = 5.1.3 Running checks for package 'Microsoft Data Access Components 2.8', phase BuildListReading value 'FullInstallVer' of registry key 'HKLMSoftwareMicrosoftDataAccess'Read string value '2.81.1132.0'Setting value '2.81.1132.0 ' for property 'MDACVersion'The following properties have been set for package 'Microsoft Data Access Components 2.8':Property: = 2.81.1132.0 Running checks for command 'MDAC28mdac_typ.exe'Result of running operator 'VersionGreaterThanOrEqualTo' on property 'MDACVersion' and value '2.80': trueResult of checks for command 'MDAC28mdac_typ.exe' is 'Bypass''Microsoft Data Access Components 2.8' RunCheck result: No Install NeededRunning checks for package 'Crystal Reports 2008', phase BuildListReading value 'BuildNum' of registry key 'HKLMSOFTWAREBusiness ObjectsSuite 12.0Crystal Reports'Unable to read registry valueNot setting value for property 'CRBuildNum'The following properties have been set for package 'Crystal Reports 2008':Running checks for command 'CrystalReports 12.0CRRuntime_12_0_mlb.msi'Skipping ByPassIf because Property 'CRBuildNum' was not definedResult of running operator 'ValueEqualTo' on property 'AdminUser' and value 'false': falseSkipping FailIf because Property 'Version9x' was not definedResult of running operator 'VersionLessThan' on property 'VersionNT' and value '5.00': falseResult of checks for command 'CrystalReports 12.0CRRuntime_12_0_mlb.msi' is 'Install''Crystal Reports 2008' RunCheck result: Install NeededEULA for components 'Crystal Reports 2008' was accepted.Copying files to temporary directory "C:DOKUME1kapaulLOKALE1TempVSD1D0.tmp"Copying from 'C:Dokumente und EinstellungenkapaulDesktopDebugCrystalReports 12.0CRRuntime_12_0_mlb.msi' to 'C:DOKUME1kapaulLOKALE1TempVSD1D0.tmpCrystalReports 12.0CRRuntime_12_0_mlb.msi'Verifying file integrity of C:DOKUME1kapaulLOKALE1TempVSD1D0.tmpCrystalReports 12.0CRRuntime_12_0_mlb.msiWinVerifyTrust returned 0File trustedRunning checks for package 'Crystal Reports 2008', phase BeforePackageReading value 'BuildNum' of registry key 'HKLMSOFTWAREBusiness ObjectsSuite 12.0Crystal Reports'Unable to read registry valueNot setting value for property 'CRBuildNum'The following properties have been set for package 'Crystal Reports 2008':Running checks for command 'CrystalReports 12.0CRRuntime_12_0_mlb.msi'Skipping ByPassIf because Property 'CRBuildNum' was not definedResult of running operator 'ValueEqualTo' on property 'AdminUser' and value 'false': falseSkipping FailIf because Property 'Version9x' was not definedResult of running operator 'VersionLessThan' on property 'VersionNT' and value '5.00': falseResult of checks for command 'CrystalReports 12.0CRRuntime_12_0_mlb.msi' is 'Install''Crystal Reports 2008' RunCheck result: Install NeededVerifying file integrity of C:DOKUME1kapaulLOKALE1TempVSD1D0.tmpCrystalReports 12.0CRRuntime_12_0_mlb.msiWinVerifyTrust returned 0File trustedInstalling using command 'C:WINDOWSsystem32msiexec.exe' and parameters ' -I "C:DOKUME1kapaulLOKALE1TempVSD1D0.tmpCrystalReports 12.0CRRuntime_12_0_mlb.msi" -q 'Process exited with code 1603Status of package 'Crystal Reports 2008' after install is 'InstallFailed'-

b1e95dc632
Reply all
Reply to author
Forward
0 new messages