deploying crystal dlls with a vb.net project

F

fig000

Hi everyone,

I recently wrote a vb.net app which includes some crystal reports.
The user has very little money in their budget and have been without a
working application for quite a while. This being the case I worked
with what was available: I used vb.net and crystal 8.5. The crystal
reports are being viewed in the crystal report viewer which is still
included in vb.net. I went ahead with developing this project because
I found that crystal 8.5 works fine with vb.net. Or so I thought.

Everything works fine on my machine. However when I intall the app
on a user machine the vb.net part works correctly but the crystal
reports don't. When I try to bring up one of the reports an error
screen tells me that it can't find:

CrystalDecisions.Windows.Forms

In looking at the references in the vb.net project this makes sense.
What I've noticed is that the crystal viewer dll is in the bin
directory of my project but not the other crystal dlls.

I would like to finish this project without costing the user much
more money. I realize that I'm reaching for a kludge but I was hoping
that I could take the crystal dlls referenced in the project and
somehow install them on the user's machine (only two users). I had
read somewhere that dlls placed in the same directory as a vb.net exe
would be "findable" by default. However in looking at the paths of the
referenced crystal dlls, I find that they seem to have been installed
in crystal specific directories such as:

C:\Program Files\Common Files\Crystal
Decisions\1.1\Managed\CrystalDecisions.CrystalReports.Engine.dll

I don't know if they have to be in these directories on the user
machine to run. If I can put them in the same directory as the exe and
have them work, do I have to change the paths to the references in my
vb.net project?

Since my users and my manager hope to get this done quickly, I've
also considered installing crytal 8.5 on both user machines, hoping
this would put the right crystal components on the machines. I'm not
sure if this will work.

Ideally, I would like to get crystal 10 and merge the correct dlls
into my vb.net project using merge modules. It may come to that but
there is pressure to avoid this as it will add time and expense to the
project.

Any advice/suggestions. Any help will be appreciated.

Neil
 
W

William Ryan eMVP

Neil:

You can get an error that indicates a missing .dll if you haven't included
the correct registration information in your deployment app. It'd help if
you could tell me what .dll it is, but the deployment project should include
all of these and many times it's the lack of correctly adding the license
key that causes this problem http://www.knowdotnet.com/articles/crystal.html
If this isn't the problem you're having, let me know the name of the .dll
and we'll take it from there.

HTH,

Bill

--

W.G. Ryan, eMVP

http://forums.devbuzz.com/
http://www.knowdotnet.com/williamryan.html
http://www.msmvps.com/WilliamRyan/
http://www.devbuzz.com/content/zinc_personal_media_center_pg1.asp
 
N

Neil Newton

Ryan,

Thanks for answering my post and being so helpful. I'm really new to
this (I've done .net apps for the web before this and the deployment
issues aren't so hairy).

This application (vb.net with crystal reports viewed through the
crystal viewer) works on my machine as I mentioned, but not on the
user's machine. Registration isn't an issue as of now (though it may be
in the future); at the moment the crystal dlls aren't on the user's
machine where I'm trying to install this application. The problem is
that I don't know how to install the crystal dlls correctly on the
user's machine. I am assuming they are on MY machine because I installed
crystal 8.5.

As I mentioned I'd like to put the missing dlls on the user's machine
in the simplest way possible and therein lies the problem. I'd like to
simply put them in the same directory as the vb.net exe if possible(I
assume that registering them should be enough once they're in that
directory). But, in that case, I'm also wondering if I have to change
the paths of the references in the vb.net project to make this work
(currently the references for these dlls in the vb.net project on my
machine point to crystal installation directories such as C:\Program
Files\Common Files\Crystal
Decisions\1.1\Managed\CrystalDecisions.CrystalReports.Engine.dll)


Here's the error I'm encountering: The dll the application is looking
for on the user machine is : CrystalDecisions.Windows.Forms (this comes
out in an error message when I try to run the app)

However, there are a few other dll's referenced in the vb.net project
and I'm thinking that they will be "missing" also if I don't put them on
the user machine. The are:
CrystalDecisions.CrytalReports.Engine
CrystalDecisions.ReportSource
CrystalDecisions.Shared

The viewer dll, Interop.Crystal.dll, was put in the bin directory (on
my machine) by the project and I put it in the same directory as the exe
on the users machine.

I know it might not be the best idea to do this without a deployment
app but there are time and financial constraints on this. I'm hoping
there's a simple solution to this problem. I appreciate your help.

Neil
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top