deploying Crystal Reports Runtime onto a server drive get FileNotFoundException error
Posted on 2006-06-28
We have a VB.NET program that wraps BO/Crystal 11 Reporting and Preview functionality into a VB.NET 1.1 exe. We pass in arguments into it etc, etc. It works great.
Our VS.NET 1.1 solutiuon includes a MS Setup project with that exe, plus all the required Merge Modules from Crystal 11 (11.0, not 11.5), and .NET 1.1 framework etc.
Everything runs perfectly when we run the install program to the local PC, such as c:\program files\widget
When you look into that install folder afterward, you'll see the exe, and a single dll from our project. The Crystal merge modules install DLLs to "C:\Program Files\Common Files\Business Objects\3.0\bin" and they show up in "C:\WINDOWS\assembly".
This is expected, everything works great when installed locally on the workstation. However, when you deploy this to 100 PCs this is time consuming. Each PC needs to install this program *at the workstation*.
So, when we attempt to install the same program to a file server (as our customers demand we do) such as to a folder: \\server\apps\widget we have problems running the program. When we install the program from a workstation and choose a destination folder, the DLLs within the Crystal Merge Modules are installed on the PC that is running the setup program. Examining the destination folder ( \\server\apps\widget), you see the vb.net exe we wrote and its DLL are present, but the DLLs are installed in the local PCs GAC. This is not going to work when you move to workstatiuon b and try to run that exe on \\server\apps\widget\widget.exe. you get an error:
System.IO.FileNotFoundException: File or assembly name CrystalDecisions.Windows.Forms, or one of its dependencies, was not found.
File name: "CrystalDecisions.Windows.Forms"
Is it even possible or is there are trick that can be done that allows me to install our vb.net widget, Crystal merge module DLLs, etc using out setup program so that we do it once on a central server and then the PCs can then just point to that folder on the server and run our widget.
p.s. we made the Intranet zone Fully Trusted by using .NET1.1 Wizard in Control Panel.