While working on a client project, I encountered an error during the installation of the SAP Crystal Reports runtime engine for .NET Framework 4.0 merge module. This post will show how to use dependency scanner tools to find the problem.
Here is a screenshot of the error that was displayed:
1904 Error when installing SAP Crystal Reports 2011 for .NET Framework 4.0
The screenshot above shows the error that is referring to missing dependencies of crtslv.dll, which is installed by the Crystal Reports merge module.
To find the missing dependencies, I opened the InstallShield Basic MSI project I was working on and went to the Dependency Scanners view. Here is a screenshot of that view:
InstallShield’s Dependency Scanners view
Although there are three scanners available, I selected the Perform Static Scanning wizard, it came up, I ran it and the screenshot below shows the results:
Dependency Scanner results
The screenshot above shows a few of the results that the scanner found. There was actually a long list. You just select the ones you want to include and InstallShield will add them to your project.
I added the redistributables it recommended, rebuilt the project and tested again. Same result, same error.
My next step was to use Microsoft’s Dependency Walker tool. If you do a search for this on the web, you will find the link and be able to download it. You will get a zip file with three files. You just copy them to a folder and then run the tool.
After running Dependency Walker, I browsed to crtslv.dll and selected it. The tool then found all the missing dependencies. The following screenshot shows the results of the scan:
Microsoft’s Dependency Walker
The above screenshot shows the results of the scan for crtslv.dll. You can see it lists four missing DLLs:
I passed this information on to the client and they addressed it on their end. This was something they needed to take care of during the building of their product.
Bottom Line: These two tools are slightly different from each other in how they work and in the information they provide to you. I can’t say one is better than the other. That’s why I use them both. Perhaps you will too.