We help IT Professionals succeed at work.

VB runtime files

castleinfo
castleinfo asked
on
197 Views
Last Modified: 2010-05-02
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.
Comment
Watch Question

Éric MoreauSenior .Net Consultant
CERTIFIED EXPERT
Top Expert 2016

Commented:
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.

Commented:
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>.
Guy Hengel [angelIII / a3]Billing Engineer
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2009

Commented:
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.
Éric MoreauSenior .Net Consultant
CERTIFIED EXPERT
Top Expert 2016

Commented:
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.
Guy Hengel [angelIII / a3]Billing Engineer
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2009

Commented:
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.
Éric MoreauSenior .Net Consultant
CERTIFIED EXPERT
Top Expert 2016

Commented:
I'm sure not. Unregister MSVBVM60.dll and launch one of your app.
Guy Hengel [angelIII / a3]Billing Engineer
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2009

Commented:
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
Guy Hengel [angelIII / a3]Billing Engineer
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2009

Commented:
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).
Éric MoreauSenior .Net Consultant
CERTIFIED EXPERT
Top Expert 2016

Commented:
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).
Guy Hengel [angelIII / a3]Billing Engineer
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2009

Commented:
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.
Guy Hengel [angelIII / a3]Billing Engineer
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2009

Commented:
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




Commented:
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.

Author

Commented:
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 ?

Guy Hengel [angelIII / a3]Billing Engineer
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2009

Commented:
When speaking of the files
Éric MoreauSenior .Net Consultant
CERTIFIED EXPERT
Top Expert 2016

Commented:
Error 429 means that one of the component can't be accessed because it is not registered!

Author

Commented:
Sorry, I tried this and it won't work 'cause DAO3.5 isn't registered etc.
No can do.
Éric MoreauSenior .Net Consultant
CERTIFIED EXPERT
Top Expert 2016

Commented:
GivenRandy,

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

Author

Commented:
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.
Senior .Net Consultant
CERTIFIED EXPERT
Top Expert 2016
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
OK I think I'll try delphi... no harm in learning a new language...
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.