Link to home
Start Free TrialLog in
Avatar of castleinfo
castleinfo

asked on

VB runtime files

I have a small open source app I've compiled under VB6. I'd like it to be runable from a network share without installing dependancy files on the clients, it needs the jet database stuff as well for connecting to an access database in the same path. Is this possible ?
App is here : http://www.castleinfo.co.uk/stealth.php3
Thanks in Advance.
Avatar of Éric Moreau
Éric Moreau
Flag of Canada image

Sorry, but No it isn't!

Since VB doesn't support static linking, all the required files cannot be included in the EXE and then requires these files to be registred. The easiest way to register the required files is to build a setup package (with Package and Deployment wizard) and install it on user's PC.
Avatar of wsh2
wsh2

As long as your clients have either MicroSoft Binder or Internet Explorer to act as containers.... Convert your program to an ActiveX Document.

VB6 provides a wizard that is fairly straightforward. With the exception of a few form idiosynchrocies (eg. load/unloads have to be converted to show/hides).. most programs port straight over... <smile>.
You may put ALL the vb runtime required files into the same folder that the .EXE file, this should work.
App.Path is the first path dll's are looked up.
angelIII,

You surely never tried it! It is impossible that it works if required files are not REGISTERED. Placing them in the same folder doesn't installs them.
emoreau: I did try it!
FYI, if an application cannot find a dll in the registry, it looks to find it in the application path, and then in the directories specified in the PATH environment variable.
I'm sure not. Unregister MSVBVM60.dll and launch one of your app.
After i put MSVBVM60.dll and all the other dll into the path of the EXE it does work.
I did it (on a PC with no VB/OFFICE and so on), (smile) so if somebody has to try, it's you (wink) or castleinfo
To install all the files necessary, i used a standard Package Wizard, specifying for ALL the files the ($AppPath) Destination.
The only problems i had where thinks like ADO (not yet resolved).
Deploying the package built with PDW (using Setup.EXE), copies and REGISTER files. Registering is more important than the location of the file.

Registering them place an entry in the Registry telling where to find the files.

What castleinfo wants is to start the app .exe without installing it. If the registry is not set with the components (vb run-times and others), the app won't start (error 429 will occur).
Making it clear, what i do is:
1) Write the app (obvious)
2) Compile the app (obvious)
3) Package the app (obvious)
After this step, there is a folder called Support in the setup folder.
4) Copy this complete folder onto your Server
5) launch your app from the client
6) It works (hurray)

emoreau: Grrr, i don't like Experts that don't try before critizising others (grin)

castleinfo:
you will naturally have to check all the dependencies of your project, and copy them to the folder. Things like ado will have to be installed whatsoever.
emoreau:
FYI, even if a dll is registered lets say in the system32 folder, and another version of it is in the app.path folder, then that dll is used, ignoring completely the registry !!
Get back to your books if you don't believe, but registry has been added later to enable sharing of files.
Cursious enough, for Win2000 Microsoft recommends not to use System32 to locate your dll's (i think they got more problems with shared dlls than they thougt beforehand)
Greetings




There is a product called fusion that compiles all runtiles, dll and ocx's into 1 larger exe that just runs with no install.  the webiste for it is http://www.bit-arts.com/

it cost 199 i think but its great they have a 30 day demo on the site.
Avatar of castleinfo

ASKER

Hi thanks for all of your comments, I've been away for a couple of days hence the lack of response.

The app needs to connect to an access database therefore putting all the files in the source directory gives error 429 or similar.

Fusion sounds interesting but my product is opensource...

I think I'll stick with Vb5 as most machines have this dependancy installed allready.

The Active X thingy is that easy ?

When speaking of the files
Error 429 means that one of the component can't be accessed because it is not registered!
Sorry, I tried this and it won't work 'cause DAO3.5 isn't registered etc.
No can do.
GivenRandy,

Please change your answer to a comment since you didn't bring anything new on what we already said!
Rejected for obvious reasons...

Does Delphi have this problem ? I heard that it produces static exe's ?
Thank you, emoreau.  I have been looking for any obnoxious (i.e., wrong) answers I may have posted.  Unfortunately, we do not have an easy way to find them (yet).  I can easily find questions I have asked or my answers that have been accepted, but I cannot find the ones that I answered but are pending without doing exhaustive guessing in the searches.

Again, thank you.  Sorry for the inconvenience.
ASKER CERTIFIED SOLUTION
Avatar of Éric Moreau
Éric Moreau
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
OK I think I'll try delphi... no harm in learning a new language...