create a setup for my project

Posted on 2004-08-21
Last Modified: 2013-11-14
I created a visual basic application. Now i want to distribute it. I need to create an installers so that i can deploy my project on to different computers. i want to bundle my files into cab files and supply it. i tried the makecab.exe but i can only put one file onto the cab file. how to bundle many files into one cab files and how rto extract them. Also if i create an installer in vb, for running that installer somefiles are necessary on the target computer(like dlls ) how do i overcome that and create an instllaer.Please reply me soon
Question by:bijesh
LVL 14

Expert Comment

ID: 11858157
Have you tried the Package and Deployment wizard which is shipped with VB ? That does exactly what you are looking for.
LVL 49

Accepted Solution

Ryan Chong earned 250 total points
ID: 11858195
Else try use other installer packager like below:

Inno Setup (Free)


Nullsoft Scriptable Install System

Ghost Installer

Installer Vise



Expert Comment

ID: 11858303

This is the method I usually use:

Zip up all the required files, and make sure they unzip into the same folder.  The concept is that if they are in the same folder, they should work fine.

Files required:

- Your VB exe file
- And database or txt files your VB exe uses
- Msvbvm60.dll (For VB6, Msvbvm50.dll for VB5)
- Any ocx files you used (they can be found in the system folder)
- Any third party dll files you used

If you're programming your installation program (which is what I usually do for flexibility), just make sure it is in the same folder as the Msvbvm60.dll file, then it would run without giving some runtime file missing error of some sort =)

Personally, I do not use the P&D wizard as I've seen quite a number of problems it gives.  Moreover, it packs certain files that I feel are not required.

That's it!

glass cookie :)
LVL 49

Expert Comment

by:Ryan Chong
ID: 11858361
It's always good to follow what glass_cookie had suggestion, yet, it will be useful for small-scale application, but an installer packager may still needed, simply because it make user earlier to select directory they want to install, provide other information like user agreement, etc and register the components needed for the application.

Also, depends on how you want to deploy your application, to determine which method to use later. If it's a commercial product, i suggest to use an installer like Inno Setup.

I prefer Inno Setup, it's simply because it's FREE, very EASY to use (remember to download the ISTools add-in), including all features available in Package and Deployment Wizard, and you can even put your icon/ logo of your corporate if you want.. a great freeware for developer!

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.


Expert Comment

ID: 11859076 is the best one to use if thats what your looking for.

Expert Comment

ID: 11860396
bijesh, you really need a deployment solution.

These are some of the reasons:
[1] some Dlls do not work universally on both NT/2K/XP and 9x/ME platform. Sometimes, each platform has their own version of Dlls.
[2] With a maturing application, you need to have an Uninstall element for end user to safely remove the apps.
[3] Deployment Programs such as WISE, InstallShield and INNOSetup is able to scan and pull relevent files and package them to ensure your apps runs correctly.

Two Main Approaches:
[1] Script-Based (Installshield - InstallScript and Wise uses them)
[2] Data-Driven (Visual Studio Installer, InstallShield - Window Installer)

Recommend FREE Package and Deployment:
[1] Visual Studio Installer - Windows Installer Engine (
[2] INNOSetup (website link as stated in previous post)

NOT Recommended:
[1] VB6 package and deployment.

Windows Installer can be considered as another program or service on the OS. It main objective is to help new programs to install correctly even if the same Dlls and OCXs already existed on the system. When an app wants to install itself, it will pass a list of what needs to be done to Windows Installer on that system to check and then it will tell the app what to install. Hence the concept of Data-based installation.

The setup file usually has a .msi format. The setup could also design an .exe with Windows Installer wrapped nicely with your app. If the itarget system does not have Windows Installer installed (i.e. Win 95 and some of Win 98), it will automatically install Windows Installer, then setup you app.

Older OS requires Windows Installer to be installed. It was developed because too many early programs do not have a standardized way to setup their files. It is a real mess. E.g. uninstalling one program will remove the Dlls that is needed another program. Well, this was partially solved by asking the user to choose if these Dlls will be removed.

How in the world does an end user know? As a result, apps crashes in Windows and user blames Microsoft. Hence the standard was developed.

Seriously, there are actual positions called Setup and Deployment Engineers in the Software Industry.

Good luck.


These are excerpts from the HELP document in Visual Studio Installer...

Data-Driven vs. Script-Based Installation
With traditional script-based installations, every installation program provided a set of instructions for a specific application installation. Though these hard-coded sequenced instructions may have worked fine for a single installation, they could cause problems if new applications or versions were subsequently installed, uninstalled, or reinstalled. Also, since information was not shared among setup scripts, it was difficult for users or administrators to track and manage installed applications.

The new, data-based Windows installer addresses many of the problems associated with installation scripts. In the data-driven installation model, you create a master set of installation tables where every application resource (files, registry keys, and so on) is clearly tied to the component or feature it supports. In creating these tables, you concentrate on what you're installing, rather than how you install it. You focus on the objects to install and where to install them, and the Windows installer manages the procedural instructions.

Some of the key advatage of using Windows Installer is this:
Application self-repair, Powerful rollback, On-demand feature installation, Once a user has made their selections, the installer can install the selected configuration with just one pass through the data.

Expert Comment

ID: 11860407
Oh i forgot...

I currently uses:
Visual Studio Installer
Installshield DevStudio 9
Installshield X for multiplatform
LVL 49

Expert Comment

by:Ryan Chong
ID: 11864042
Installshield should always be #1, but it's not free and expensive, and sometimes it's difficult to use, as it's too customizable and that's why it's not recommended for beginner (i know there is a Express Edition ;-)


Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
Monitor input from a computer is usually nothing special.  In this instance it prevented anyone from using the computer.  This was a preconfiguration that didn't work.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

861 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now