create a setup for my project

Posted on 2004-08-21
Medium Priority
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 56

Accepted Solution

Ryan Chong earned 1000 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 :)
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

LVL 56

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!


Expert Comment

ID: 11859076
http://www.innosetup.com 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 (http://msdn.microsoft.com/vstudio/downloads/tools/vsi11/default.aspx)
[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 56

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

Train for your Pen Testing Engineer Certification

Enroll today in this bundle of courses to gain experience in the logistics of pen testing, Linux fundamentals, vulnerability assessments, detecting live systems, and more! This series, valued at $3,000, is free for Premium members, Team Accounts, and Qualified Experts.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

623 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