| At this point, you may be wondering what the | | | | dependent on many other components including |
| automated installation of your application (with uninstall | | | | standard Windows dynamic link libraries, ActiveX |
| capability) has to do with improving the quality of your | | | | components, registry settings or simple data files. To |
| Visual Basic source code. Well, and many would | | | | successfully install your application it is necessary to |
| agree, it's quite simple: you can't afford not to! The time | | | | distribute all dependant components, settings and files if |
| you will save by doing so will easily cover the | | | | they are not already installed with the operating |
| investment of creating and maintaining the installation | | | | system itself or other required software. |
| set and can be reinvested in activities to improve and | | | | Publish Changes During Development Via Your |
| enhance your application. | | | | Installation Set |
| Automation of your application's installation can yield | | | | During the development life cycle of a project, |
| the following benefits: | | | | components worked on by different developers will |
| Simple and consistent install/uninstall process. | | | | continue to evolve with changes to interfaces and |
| Installation can be performed by novice and | | | | dependencies. To simplify the process of distributing |
| experienced users alike. | | | | component changes, make use of the installation set |
| Software meets minimum customer expectations for | | | | the one and only means of publishing component |
| software installation. | | | | changes and dependencies to your development |
| Avoidance of time-consuming support queries caused | | | | team. |
| by incorrect installation. | | | | Do Not Install Old Versions |
| The Challenge | | | | It is a surprising fact that many developers building |
| Having written quality software and built quality binaries, | | | | installation sets believe it acceptable for their installation |
| you now have to get them onto your customer's | | | | set to replace existing files on a customer's machine |
| hardware in such a way that they actually work and | | | | with older versions. Unfortunately this is rarely |
| without breaking any existing software that is already | | | | acceptable. If you find that your own software will not |
| installed. Many share the opinion, that if you don't | | | | work with newer versions of a dependant file then |
| distribute your software with an automated install set, | | | | you should consider upgrading your software rather |
| your chances of success are slim while the chances | | | | than downgrade your customer's. |
| of losing credibility with your customers is high. | | | | Support Uninstall |
| Building good installation sets is not easy and the | | | | During development members of your team will want |
| mistake organisations often make is to leave the | | | | to uninstall your software, and so too will your |
| creation and testing of the installation set to the last | | | | customers occasionally. The uninstall function should |
| minute. Best advice therefore is to design and build | | | | ideally remove all trace of your software and restore |
| your installation set early in the development life cycle, | | | | a machine to the state it was in prior to the installation. |
| preferably as soon as you have built the first binaries, | | | | In practice, a totally clean uninstall is difficult to achieve, |
| and use it to distribute software to your development | | | | nevertheless you should at least remove all the files |
| team. Ideally, the daily build and smoke test should be | | | | and registry settings you installed unless you know |
| extended to include the automated building of the install | | | | them to be shared files that are used by other |
| set. | | | | software. Supporting uninstallation can be especially |
| Note: The effort expended in creating an installation | | | | beneficial during development of ActiveX components |
| set soon pays for itself many times over and can | | | | as it enables developers to remove obsolete |
| demonstrate visibility of your progress to your | | | | references from the Windows Registry. |
| customers if required. | | | | Application Installation Set Testing |
| Installation Creation Tools | | | | Always test your application's installation with target |
| To create an installation set, you need to use either the | | | | hardware and software. Development machines are |
| Package & Deployment Wizard supplied with | | | | often littered with ActiveX components and later |
| Microsoft Visual Basic or another, more sophisticated | | | | versions of libraries etc. than may be installed by |
| installation tool. Fortunately there are many such tools | | | | default on your customers' target platform. By testing |
| to choose from. Take the time to evaluate and try a | | | | your application installation set with target hardware |
| few tools before you buy one. | | | | and software you will soon identify missing |
| Determine Dependencies | | | | dependencies and possible platform differences. |
| Any software component that you build can be | | | | |